JavaScript中扩展Array contains方法实例


Posted in Javascript onAugust 23, 2020

首先三水点靠木小编先为大家分享一个比较好用的代码

Array.prototype.contains = function (a)
{
  if ("string" == typeof a || "number" == typeof a) {
    for (var b in this) {
      if (a == this [b]) {
        return!0;
      };
    }
  }
  return!1
};

先判断传入的参考是字符与数字才可以判断,这样就比较精准。

下面是一些推荐资料可以看看

javascript的Array没有contains方法,有时候这会不方便,contains方法实现很简单:

function contains(a, obj) {
 var i = a.length;
 while (i--) {
  if (a[i] === obj) {
   return true;
  }
 }
 return false;
}

当然我们也可以扩展Array类,如下js

Array.prototype.contains = function(obj) {
 var i = this.length;
 while (i--) {
  if (this[i] === obj) {
   return true;
  }
 }
 return false;
}

这样就可以方便的使用contains方法了:

alert([1, 2, 3].contains(2)); // => true
alert([1, 2, 3].contains('2')); // => false

下面是三水点靠木小编整理的几种方法

一个小误区 JS中的contains

在Java语言中,contains可以用于判断str1是否包含str2

原生JS中是有contains方法的

结构与测试代码如下

<div id="div1">
<div id="div2">
3water.com
</div>
</div>
<script type="text/javascript">
var div1= document.getElementById("div1");
var div2= document.getElementById("div2");
console.log(div1.contains(div2));

var str1="3water.com";
var str2="3water";
console.log(str1.contains(str2));
</script>

JavaScript中扩展Array contains方法实例

但它并不是字符串方法,,仅用于判断DOM元素的包含关系,参数是Element类型

JavaScript中扩展Array contains方法实例

若要在JS中判断俩字符串的包含关系,用indexOf()

JavaScript中扩展Array contains方法实例

但是我们可以通过扩展的方法来实现

<div id="div1">
<div id="div2">
3water.com
</div>
</div>
<script type="text/javascript">
var div1= document.getElementById("div1");
var div2= document.getElementById("div2");
console.log("div1.contains(div2)="+div1.contains(div2));

//字符扩展contains就不会报错了
String.prototype.contains = function(a) {
 return - 1 < this.indexOf(a)
};

var str1="3water.com";
var str2="3water";
console.log("str1.contains(str2)="+str1.contains(str2));

//数组扩展contains适用于数组判断
Array.prototype.contains = function(a) {
 if ("string" == typeof a || "number" == typeof a) for (var b in this) if (a == this[b]) return ! 0;
 return ! 1
};

var arr1=["3water.com","jbzj.com","3water.com"];
var str3="3water.com";
console.log("arr1.contains(str3)="+arr1.contains(str3));
</script>

下面是运行结果

JavaScript中扩展Array contains方法实例

当然也有通过正则实现的JS扩展Array,添加contains方法

Array.prototype.contains = function(item){
 return RegExp("\\b"+item+"\\b").test(this);
};

直接返回true/false

JS判断Array数组中是否包含指定元素

1.调用方式:

var arr=["a","b"];
alert(arr.in_array("a"))

2.JS判断数组是否包含指定元素方法定义:

Array.prototype.contains = function(obj) {
  var i = this.length;
  while (i--) {
    if (this[i] === obj) {
      return true;
    }
  }
  return false;
}
或
Array.prototype.contains = function(element) {
  for (var i = 0; i < this.length; i++) {
    if (this[i] == element) {
      return true;
    }
  }
  return false;
}
或
Array.prototype.in_array = function(e) {
  for(i=0; i<this.length && this[i]!=e; i++);
  return !(i==this.length);
}


还有一个大牛是这样写的:
Array.prototype.S = String.fromCharCode(2);
Array.prototype.in_array = function(e) {
  var r = new RegExp(this.S+e+this.S);
  return (r.test(this.S+this.join(this.S)+this.S));
}

站外扩展:

Jquery实现方式:http://api.jquery.com/jQuery.inArray/

具体选择看个人需求,三水点靠木小编建议能不用正则则不用,效率问题,代码是简洁就怕一些老的浏览器不支持。

Javascript 相关文章推荐
jQuery EasyUI API 中文文档 - Panel面板
Sep 30 Javascript
13个PHP函数超实用
Oct 21 Javascript
jQuery Html控件基本操作(日常收集整理)
Mar 11 Javascript
AngularJs解决跨域问题案例详解(简单方法)
May 19 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
May 30 Javascript
深入理解JavaScript函数参数(推荐)
Jul 26 Javascript
原生js实现电商侧边导航效果
Jan 19 Javascript
js从输入框读取内容,比较两个数字的大小方法
Mar 13 Javascript
vue解决弹出蒙层滑动穿透问题的方法
Sep 22 Javascript
layui点击按钮页面会自动刷新的解决方案
Oct 25 Javascript
JavaScript This指向问题详解
Nov 25 Javascript
基于JavaScript实现简单的轮播图
Mar 03 Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 #Javascript
jQuery实现的支持IE的html滑动条
Mar 16 #Javascript
JavaScript计算两个日期时间段内日期的方法
Mar 16 #Javascript
nw.js实现类似微信的聊天软件
Mar 16 #Javascript
JavaScript控制table某列不显示的方法
Mar 16 #Javascript
详解addEventListener的三个参数之useCapture
Mar 16 #Javascript
解决Jquery向页面append新元素之后事件的绑定问题
Mar 16 #Javascript
You might like
用php将任何格式视频转为flv的代码
2009/09/03 PHP
php 调用远程url的六种方法小结
2009/11/02 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
php新建文件自动编号的思路与实现
2011/06/27 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
js保留小数点后几位的写法
2014/01/03 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
jQuery居中元素scrollleft计算方法示例
2017/01/16 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
Python学习笔记(二)基础语法
2014/06/06 Python
Python文件夹与文件的操作实现代码
2014/07/13 Python
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
python 网络编程详解及简单实例
2017/04/25 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
Python发送邮件实现基础解析
2020/08/14 Python
python中的插入排序的简单用法
2021/01/19 Python
使用Python封装excel操作指南
2021/01/29 Python
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
struct与class的区别
2014/02/03 面试题
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
结婚邀请函范文
2014/01/14 职场文书
项目投资意向书
2014/04/01 职场文书
典型事迹材料范文
2014/12/29 职场文书
安全生产协议书
2016/03/22 职场文书
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript