JavaScript中有没有办法比较一个数组中的值并查看它是否在另一个数组中?
类似于 PHP 的 in_array
函数?
原文由 roflwaffle 发布,翻译遵循 CC BY-SA 4.0 许可协议
JavaScript中有没有办法比较一个数组中的值并查看它是否在另一个数组中?
类似于 PHP 的 in_array
函数?
原文由 roflwaffle 发布,翻译遵循 CC BY-SA 4.0 许可协议
var value = 'a';
var array = ['a', 'b', 'c'];
if(array.indexOf(value)){
// exists in array
} else {
// Not exists in array
}
原文由 Hamid Raza 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
不,它没有。出于这个原因,大多数流行的库都在其实用程序包中附带了一个。查看 jQuery 的 inArray 和 Prototype 的 Array.indexOf 示例。
jQuery 的实现和你想象的一样简单:
如果您正在处理数量合理的数组元素,则上述方法会很好地解决问题。
编辑:哎呀。我什至没有注意到您想查看一个数组是否在另一个数组中。根据 PHP 文档,这是 PHP 的
in_array
的预期行为:Chris 和 Alex 发布的代码不遵循这种行为。 Alex 的是 Prototype 的 indexOf 的正式版,而 Chris 的更像 PHP 的
array_intersect
。这可以满足您的要求:这是我对上面的测试:
请注意,我故意没有扩展 Array 原型,因为这样做通常是个坏主意。