javascript - 检查集合是否有二维数组

标签 javascript set

我遇到了 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]);

console image

最佳答案

对 Set 成员进行的身份比较将基于对象身份。如果将 [5, 10] 添加到 Set 中,则 Set 不关心 510。重要的是数组是一个特定的对象。您无法通过查询[5, 10]的不同数组来确定Set是否包含具有510的数组],因为不同的数组是不同的。没有两个对象是相等的。

换句话说,您可以根据需要创建任意数量的数组,例如 [5, 10] 并将它们全部添加到单个 Set 实例中,因为每个数组都是不同的对象。

关于javascript - 检查集合是否有二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061680/

相关文章:

用于捕获圆括号中变量的 Javascript 正则表达式

javascript - 如何在 html2canvas 中插入 jquery

algorithm - 生成不在一组数字 N 中的随机数 R 的最佳算法

java - 不区分大小写的排序集 - 保留相同的字符串但大小写不同

python - 为什么有人会检查 'x in list' ?

javascript - 为什么延迟时间选项对我的工具提示不起作用?

javascript - 如何用Node和Express将图像从后端发送到 View ?

javascript - StructuredClone() 在 TypeScript 中不可用

php - PHP 中的 MYSQL UPDATE 和 SET 语句(500 错误响应)

python - 将(设置)应用于 Pandas 数据框中的两列