【发布时间】:2019-08-24 05:26:43
【问题描述】:
这是一个简化的示例,但假设我想在 100x100 网格上生成 5 个唯一位置。这些位置将存储在数组 [[x, y], ...] 中。
尝试了生成随机 x 和 y 并检查数组 [x, y] 是否已经在结果数组中的明显方法。如果是,则生成不同的值,如果不是,则将其添加到结果数组中。
result = [];
while (result.length !== 5) {
let x = Math.floor(Math.random() * 100) + 1;
let y = Math.floor(Math.random() * 100) + 1;
if (!result.includes([x, y])) {
result.push(array);
}
}
但是,这永远不会找到重复项,因为数组在技术上是不同的对象。那么,检测数组是否包含“相等”数组/对象的首选方法是什么?
【问题讨论】:
-
您反对为此使用 lodash 函数吗? stackoverflow.com/questions/29951293/… 这可能比编写比较循环更容易
-
[x,y] !== [x,y]即使值相同
标签: javascript arrays