使用 array.includes 进行松散的相等比较

Jag*_*ati 2 javascript arrays

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

var array1 = [1, 2, 3];

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

console.log(array1.includes("2")); // return false
Run Code Online (Sandbox Code Playgroud)

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

T.J*_*der 6

那你不能用includes。您可以使用some

console.log(array1.some(e => e == "2"));
Run Code Online (Sandbox Code Playgroud)

或在 ES5 中:

console.log(array1.some(function(e) { return e == "2";}));
Run Code Online (Sandbox Code Playgroud)

some按顺序调用您为条目提供的回调,直到您的回调返回真值,在这种情况下some停止并返回true。如果您的回调从不返回真值(或数组为空),则some返回false.

some 在 ES5 (2009) 中添加。

现场示例:

console.log(array1.some(e => e == "2"));
Run Code Online (Sandbox Code Playgroud)