-
隔江千里
ECMAScript 7介绍Array.prototype.includes。它可以像这样使用:[1, 2, 3].includes(2); // true[1, 2, 3].includes(4); // false它还接受可选的第二个参数fromIndex:[1, 2, 3].includes(3, 3); // false[1, 2, 3].includes(3, -1); // true不像indexOf,它采用严格相等比较,includes比较了使用SameValueZero平等算法。这意味着您可以检测数组是否包含NaN:[1, 2, NaN].includes(NaN); // true也不像indexOf,includes不跳过缺失的索引:new Array(5).includes(undefined); // true目前它仍然是草稿,但可以填充以使其适用于所有浏览器。
-
慕的地8271018
b是值,a是数组。它返回true或false:function(a, b) {
return a.indexOf(b) != -1}
-
慕村225694
目前的浏览器都有Array#includes,这不正是那个,得到广泛支持,并具有填充工具旧版本浏览器。> ['joe', 'jane', 'mary'].includes('jane');true您也可以使用Array#indexOf,这不是直接的,但不要求Polyfills用于过时的浏览器。jQuery提供$.inArray,功能相当于Array#indexOf。underscore.js,一个JavaScript实用程序库,提供_.contains(list, value)别名_.include(list, value),如果传递了JavaScript数组,它们都在内部使用indexOf。其他一些框架提供了类似的方法:Dojo工具包: dojo.indexOf(array, value, [fromIndex, findLast])原型: array.indexOf(value)MooTools的: array.indexOf(value)MochiKit: findValue(array, value)MS Ajax: array.indexOf(value)分机: Ext.Array.contains(array, value)Lodash :( 先前_.includes(array, value, [from])是_.contains4.0.0)ECMAScript 2016: array.includes(value)请注意,某些框架将此实现为函数,而其他框架则将该函数添加到数组原型中。
-
慕森王
indexOf 也许,但它是“ECMA-262标准的JavaScript扩展;因此它可能不会出现在标准的其他实现中。”例:[1, 2, 3].indexOf(1) => 0["foo", "bar", "baz"].indexOf("bar") => 1[1, 2, 3].indexOf(4) => -1AFAICS 微软并没有提供某种替代的这一点,但你可以到(不支持和其他浏览器Internet Explorer中的阵列加入类似的功能indexOf),如果你想作为一个快速谷歌搜索发现(例如,这一个)。