Extjs如何判断一个数组中某个元素是否包含某个元素

例如的的这个数组中有这几个元素,我想判断数组中的元素是否存在2,应该怎么判断?现在此谢过... 例如的的这个数组中有这几个元素,我想判断数组中的元素是否存在2,应该怎么判断?现在此谢过 展开
 我来答
双子孙行者
2017-04-22 · TA获得超过426个赞
知道小有建树答主
回答量:152
采纳率:100%
帮助的人:89.1万
展开全部

目标 : 判断一个数组中某个元素是否包含某个元敬答素

思路 :  要判断数组中是否包含某个元素,从原理来来说,就是遍历整个数组,然后判断是否相等,我们来造个轮子,名字就山寨PHP的数组函数in_array()

Array.prototype.in_array = function(e)  
{  
for(i=0;i<this.length;i++)  
{  
if(this[i] == e)  
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));  
}

使用方法:

var arr=["a","b"];  
alert(arr.in_array("a"))
yjx759520
2017-04-28 · TA获得超过338个赞
知道小有建树答主
回答量:449
采纳率:66%
帮助的人:206万
展开全部
arr.indexOf();可以得出在数组中第一个出现的位置,如果返回是-1则不存在
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在晴天的雨伞
2016-05-25 · TA获得超过6869个赞
知道大有可为答主
回答量:5761
采纳率:86%
帮助的人:1212万
展开全部
同样是.net3.5环境下的两个项目,一个里支持arr.contains(1),一个就不支持,代码完全相同也不行.有时在不支持项目里加新文件支持,但有时又不支持,发现在支持的项目里contains的注释是<extension方法,但是查不出在哪定义的. 在网宴祥上查到一段代码,虽然和这不太一样,但是可以使数组使用contains 数组有Contains方法,在.NET Framework 2.0 版中,Array 类实现ICollection<T接口,但必须如下书写代码:1. string[] ss =newstring[] {1,2};2. boolb = (ssasICollection<string ).Contains(1); MSDN中说明如下: 在.NET Framework 2.0 版中,Array 类实现 System.Collections.Generic.IList<T、System.Collections.Generic.ICollection<T 和 System.Collections.Generic.IEnumerable<T 泛型接口。由于实现是在运行时提供给数组的,因而对于文档生成工具不可见。因此,泛型接口不会出现在 Array 类的声明语法中,也不会有关于只能通过将数组强制转换为泛型接口类型(显式接口实现)才可访问的接口成员的参考主题。将某一数组强誉祥圆制转换为这三种接口庆塌之一时需要注意的关键一点是,添加、插入或移除元素的成员会引发 NotSupportedException。 下例的第二种方法是上文里讲到的三种方法之一. (1) 第一种方法: int[] ia = {1,2,3}; int id = Array.IndexOf(ia,1); // 这里的1就是你要查找的值if(id==-1)// 不存在else// 存在(2) 第二种方法: string[] strArr = {a,b,c,d,e}; bool exists = ((IList)strArr).Contains(a);if(exists)// 存在else// 不存在注意:用IList需要
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兄弟连IT教育03
2016-06-15 · TA获得超过389个赞
知道小有建树答主
回答量:515
采纳率:66%
帮助的人:179万
展开全部
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;
}
据说while减迭代是js里最快歼族的氏知弊一种方法,不知道是猛扰不是真的,出自
http://stackoverflow.com/questions/237104/javascript-array-containsobj

contains(a, obj){

for(var i = 0; i < a.length; i++) {

if(a[i] === obj){

return true;

}

}

return false;
}
分享:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式