如何检查数组是否在JavaScript中包含值?
找出JavaScript数组是否包含值的最简洁,最有效的方法是什么?
这是我知道的唯一方法:
function contains(a, obj) { for (var i = 0; i < a.length; i++) {
if (a[i] === obj) {
return true;
}
}
return false;
}
有没有更好,更简洁的方法来实现这一目标?
这与Stack Overflow问题密切相关。在JavaScript数组中查找项目的最佳方法?解决使用数组查找对象的问题indexOf。
回答:
现代的浏览器Array#includes
,这不正是这一点,得到广泛支持的人,除IE:
console.log(['joe', 'jane', 'mary'].includes('jane')); //true
你也可以使用Array#indexOf
,它不太直接,但对于过时的浏览器不需要使用polyfill
。
许多框架还提供类似的方法:
- jQuery:
$.inArray(value, array, [fromIndex])
- Underscore.js:
_.contains(array, value) (also aliased as _.include and _.includes)
- Dojo Toolkit:
dojo.indexOf(array, value, [fromIndex, findLast])
- Prototype:
array.indexOf(value)
- MooTools:
array.indexOf(value)
- MochiKit:
findValue(array, value)
- MS Ajax:
array.indexOf(value)
- Ext:
Ext.Array.contains(array, value)
- Lodash:
_.includes(array, value, [from]) (is _.contains prior 4.0.0)
- Ramda:
R.includes(value, array)
注意,有些框架将此功能实现为一个函数,而另一些框架则将该函数添加到数组原型中。
以上是 如何检查数组是否在JavaScript中包含值? 的全部内容, 来源链接: utcz.com/qa/419611.html