获取周围的坐标

时间:2019-06-24 08:51:37

标签: javascript arrays object ecmascript-6 coordinates

我有x,y坐标的仪表板,就像这样:

enter image description here

现在让我们说我在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}, ...]

enter image description here

(现在我看到图像上的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)

但这远非解决方案。那么完成这项任务的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您需要遍历xy的值-并使用<=到达所需的范围:

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; }