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

问题描述 投票:0回答:1

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

var array1 = [1, 2, 3];

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

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

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

javascript arrays
1个回答
3
投票

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

console.log(array1.some(e => e == "2"));

或者在ES5中:

console.log(array1.some(function(e) { return e == "2";}));

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

在ES5(2009年)中添加了some

实例:

const array1 = [1, 2, 3];
console.log(array1.some(e => e == "2"));
© www.soinside.com 2019 - 2024. All rights reserved.