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实现UTF8编码转换成gb2312编码
Dec 22 Javascript
表头固定(利用jquery实现原理介绍)
Nov 08 Javascript
jquery获取div宽度的实现思路与代码
Jan 13 Javascript
JQuery表格内容过滤的实现方法
Jul 05 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
Apr 06 Javascript
jquery中trigger()无法触发hover事件的解决方法
May 07 Javascript
JS实现超简单的鼠标拖动效果
Nov 02 Javascript
javascript实现二级级联菜单的简单制作
Nov 19 Javascript
bootstrap multiselect 多选功能实现方法
Jun 05 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
详解vue-cli项目开发/生产环境代理实现跨域请求
Jul 23 Javascript
Javascript数组及类数组相关原理详解
Oct 29 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
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
在smarty中调用php内置函数的方法
2013/02/07 PHP
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
浅析js封装和作用域
2013/07/09 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
vuex入门最详细整理
2020/03/04 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
python连接mysql调用存储过程示例
2014/03/05 Python
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
高中数学教学反思
2014/01/30 职场文书
银行开业庆典方案
2014/02/06 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
给公司的建议书范文
2014/05/13 职场文书
贷款工作证明模板
2015/06/12 职场文书
高二化学教学反思
2016/02/22 职场文书
DQL数据查询语句使用示例
2022/12/24 MySQL