根据坐标识别订单

时间:2019-12-03 10:33:08

标签: javascript algorithm

我想将坐标(?,?)映射到特定的订单ID,这将帮助我跟踪坐标何时更改。

我需要一个基于坐标获取特定ID的公式。

以下是一些坐标示例:

00-1
10-2
01-3
11-4
02-5
12-6
03-7
13-8
04-9
14-10
05-11
15-12

我可以使用这些值的映射,但不确定该值会增长多少。

传递坐标时无法识别要获取顺序的公式。

有人可以在这里确定逻辑吗。

谢谢

1 个答案:

答案 0 :(得分:1)

以下是两个方向的两个功能:

const toId = (x, y) => 1 + x + 2*y;
const toCoord = (id) => [--id % 2, id >> 1];

// Demo:
for (let id = 1; id < 16; id++) {
    let [x, y] = toCoord(id);
    let id2 = toId(x, y);
    console.log(id + " to coordinates: [" + x + "," + y + "] ...and back to id: " + id2);
}