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 相关文章推荐
JS获得浏览器版本和操作系统版本的例子
May 13 Javascript
jquery复选框多选赋值给文本框的方法
Jan 27 Javascript
jquery.mobile 共同布局遇到的问题小结
Feb 10 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
Sep 12 Javascript
实现JavaScript的组成----BOM和DOM详解
May 18 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 Javascript
JS中使用变量保存arguments对象的方法
Jun 03 Javascript
轻松掌握JavaScript代理模式
Aug 26 Javascript
配置eslint规范项目代码风格
Mar 11 Javascript
Vue的状态管理vuex使用方法详解
Feb 05 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
May 14 Javascript
vue用elementui写form表单时,在label里添加空格操作
Aug 13 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之第九天
2006/10/09 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
php生成静态html页面的方法(2种方法)
2015/09/14 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
Javascript图像处理思路及实现代码
2012/12/25 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
pandas表连接 索引上的合并方法
2018/06/08 Python
python调用staf自动化框架的方法
2018/12/26 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
超市仓管员岗位职责
2014/04/07 职场文书
节电标语大全
2014/06/23 职场文书
本科应届生自荐信
2014/06/29 职场文书
小学生运动会广播
2015/08/19 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
单位提档介绍信
2015/10/22 职场文书