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 相关文章推荐
JavaScript 入门·JavaScript 具有全范围的运算符
Oct 01 Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
Mar 15 Javascript
js实现的切换面板实例代码
Jun 17 Javascript
JavaScript—window对象使用示例
Dec 09 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
Sep 06 Javascript
深入剖析JavaScript编程中的对象概念
Oct 21 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
Oct 22 Javascript
js实现选中页面文字将其分享到新浪微博
Nov 05 Javascript
微信JS-SDK选取手机照片上传功能
Apr 21 Javascript
vue使用axios跨域请求数据问题详解
Oct 18 Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 Javascript
uniapp微信小程序:key失效的解决方法
Jan 20 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
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
php curl选项列表(超详细)
2013/07/01 PHP
php+mysql数据库查询实例
2015/01/21 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
用js查找法实现当前栏目的高亮显示的代码
2007/11/24 Javascript
JavaScript函数、方法、对象代码
2008/10/29 Javascript
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
dess中一个简单的多路委托的实现
2010/07/20 Javascript
模拟select的代码
2011/10/19 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
javascript实现倒计时关闭广告
2021/02/09 Javascript
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
深入理解python中的atexit模块
2017/03/07 Python
numpy排序与集合运算用法示例
2017/12/15 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
Python实现FLV视频拼接功能
2020/01/21 Python
深入理解Python 多线程
2020/06/16 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
考博专家推荐信模板
2013/12/02 职场文书
求职信格式要求
2014/05/23 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
十二生肖观后感
2015/06/12 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript