Javascript 使用array.includes执行松散相等比较

Javascript 使用array.includes执行松散相等比较,javascript,arrays,Javascript,Arrays,Array.includes对数组元素进行严格比较 var array1 = [1, 2, 3]; console.log(array1.includes(2)); // return true console.log(array1.includes("2")); // return false 但在第二种情况下,我也希望结果返回true。我的主要目标是知道数组是否包含元素。请建议如何实现这一点。那么,您不能使用包含。您可以使用: 或在ES5中: console.log(array1.so

Array.includes对数组元素进行严格比较

var array1 = [1, 2, 3];

console.log(array1.includes(2)); // return true

console.log(array1.includes("2")); // return false

但在第二种情况下,我也希望结果返回true。我的主要目标是知道数组是否包含元素。请建议如何实现这一点。

那么,您不能使用
包含
。您可以使用:

或在ES5中:

console.log(array1.some(function(e) { return e == "2";}));
some
按顺序调用您为条目提供的回调,直到回调返回truthy值,在这种情况下,
some
停止并返回
true
。如果回调从未返回真实值(或数组为空),
some
将返回
false

在ES5(2009)中增加了一些

实例:

const数组1=[1,2,3];

log(array1.some(e=>e==“2”)为什么不直接比较元素的整数值
array1.includes(+“2”)
您可以使用自定义的“array.filter”函数并返回值是2还是“2”@LukeStoward:无需构建新数组(即使已经找到,也要一直搜索到底),只需检查数组是否包含值即可。:-)@Zenoo您建议的方法是否有任何限制?如果您给出的字符串不是数字的表示形式,则使用
+
获取其整数值将返回
NaN
。除此之外,我看不到任何不利的一面。
console.log(array1.some(function(e) { return e == "2";}));