找到给定 x 和 y 坐标的唯一节点号

Find unique node number given x and y coordinates

参考这张图片,第一个数组是x坐标,第二个数组是y坐标。蓝色框将是每个 (x,y) 的节点编号。如果该点之前已被标记,它将保留之前分配给它的相同节点号。如果该点之前没有被标记并且是新的,它将被分配一个新的节点号 :) 对于我的尝试,我试图找到所有镜像坐标的索引和下面代码中存在的镜像坐标的数量。但是,我不确定下一步应该如何获取数组 中蓝色框的 值。这是在 javascript 中。任何指导将不胜感激:)

for (let i=0;i<jaja+1;i++){
      if ( (x_all[arr[m]+i]==x_all[arr[m]-i])  ){
    }
    }

这是一个相当简单的'zip',添加了以前见过的点的地图,这里在一个由每个点的 JSON 字符串键控的对象中跟踪,retrieving/setting 下一个使用 logical nullish assignment (??=).

的 ID

const xs = [102, 152, 202, 252, 202, 152, 302, 10, 332, 10, 1];
const ys = [100, 50, 60, 70, 60, 9, 3, 2, 1, 2, 100];

let seen = {}, count = 1;
const result = xs.map((x, i) => {
  const point = { x, y: ys[i] };
  const id = (seen[JSON.stringify(point)] ??= count++);
  return { id, ...point };
})

console.log(result)

在此处查看更多 'zip' 讨论:Javascript equivalent of Python's zip function