JavaScript中对数组的布尔运算

时间:2015-11-12 15:41:16

标签: javascript arrays ecmascript-6

使用ES6套装,我可以这样做:

let ints = new Set([1,2,3])
console.log(ints.has(3))

并打印true因为3 集合中。

但阵列怎么样? E.g。

let coordinates = new Set([[1,1], [1,2], [2,0]])
console.log(coordinates.has([1,2]))

这会打印false

As you can see in this CodePen demo

因此,如果没有先将坐标转换为字符串(例如['1,1', '1,2', '2,0']),我如何处理集合中的数组,就好像数组是可以清除的一样?

1 个答案:

答案 0 :(得分:9)

由于Set和Map实例基于===比较(NaN除外),因此两个不同的数组永远不会相同,所以您的示例正确导致false。但是:

var a = [1, 1], b = [1, 2], c = [1, 3];
var s = new Set([a, b, c]);
console.log(s.has(a));

将打印true