我有x,y坐标的仪表板,就像这样:
现在让我们说我在4,4
上,我想获取对象数组,其中包含在2范围内的每个4,4坐标中的x,y。
因此对象的输出数组将类似于
[{x: 2, y: 2}, {x: 3, y: 2}, {x: 4, y: 2}, {x: 5, y: 2}, {x: 6, y: 2}, ...]
(现在我看到图像上的x,y与之相反,对不起,错误)
我可以这样得到x:
const currentCoord = { x: 4, y: 4 };
const range = 2;
const coordsAround = [];
for(let i = 0; i < range * 2; i++) {
coordsAround.push({x: currentCoord.x - range + i, y: currentCoord.y})
}
console.log(coordsAround)
但这远非解决方案。那么完成这项任务的最佳方法是什么?
答案 0 :(得分:1)
您需要遍历x
和y
的值-并使用<=
到达所需的范围:
const currentCoord = { x: 4, y: 4 };
const range = 2;
const coordsAround = [];
for (let i = 0; i <= range * 2; i++) {
for (let j = 0; j <= range * 2; j++) {
coordsAround.push({ x: currentCoord.x - range + j, y: currentCoord.y - range + i });
}
}
console.log(coordsAround);
.as-console-wrapper { max-height: 100% !important; top: auto; }