Javascript 使用array.includes执行松散相等比较
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
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";}));