我遇到了 set.has()
方法的问题。我有一个集合,其中有一个二维数组,显示另一个二维数组的索引。当我想检查集合是否包含索引时,它总是返回 false
。
这是代码:
var indexes = new Set();
while (indexes.size < 10) {
indexes.add(randomIndex());
}
function randomIndex() {
i = Math.floor(Math.random() * 9);
j = Math.floor(Math.random() * 11);
return [i, j];
}
indexes.has([i,j]);
最佳答案
对 Set 成员进行的身份比较将基于对象身份。如果将 [5, 10]
添加到 Set 中,则 Set 不关心 5
或 10
。重要的是数组是一个特定的对象。您无法通过查询[5, 10]的不同数组来确定Set是否包含具有
,因为不同的数组是不同的。没有两个对象是相等的。5
和10
的数组]
换句话说,您可以根据需要创建任意数量的数组,例如 [5, 10]
并将它们全部添加到单个 Set 实例中,因为每个数组都是不同的对象。
关于javascript - 检查集合是否有二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061680/