时间:2021-05-26
首先小编先为大家分享一个比较好用的代码
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">jb51.net</div></div><script type="text/javascript">var div1= document.getElementById("div1");var div2= document.getElementById("div2");console.log(div1.contains(div2));var str1="jb51.net";var str2="jb51";console.log(str1.contains(str2));</script>但它并不是字符串方法,,仅用于判断DOM元素的包含关系,参数是Element类型
若要在JS中判断俩字符串的包含关系,用indexOf()
但是我们可以通过扩展的方法来实现
<div id="div1"><div id="div2">jb51.net</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="jb51.net";var str2="jb51";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=["jb51.net","jbzj.com","jb51.com"];var str3="jb51.net";console.log("arr1.contains(str3)="+arr1.contains(str3));</script>下面是运行结果
当然也有通过正则实现的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/
具体选择看个人需求,小编建议能不用正则则不用,效率问题,代码是简洁就怕一些老的浏览器不支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
背景:JavaScript中Array对象的标准方法中,没有indexOf()方法,可通过下面的代码扩展。复制代码代码如下:if(!Array.prototyp
在C#语法中判断集合是否包含某个元素可以使用Contains方法,但是类似的问题在javascript中要怎么处理呢,js中没有Contains方法。我们可以利
本文实例讲述了ES6Array常用扩展的应用。分享给大家供大家参考,具体如下:在ES6中又对Array扩展了不少方法,下面我们来看下from方法将伪数组转换为数
本文实例讲述了JavaScript中利用Array和Object实现Map的方法。分享给大家供大家参考。具体如下:昨天突然看到以前别人用JavaScript实现
判断数组是否包含某个元素的js函数实现方法Array.prototype.contains=function(obj){vari=this.length;whi