gpt4 book ai didi

javascript - 在javascript中表示坐标,并在常数时间内访问元素

转载 作者:行者123 更新时间:2023-11-30 19:02:39 26 4
gpt4 key购买 nike

我有一个树结构。

             root(0,0)
/ \
/ \
/ \
A(-1,1) B(1,1)
/ \ / \
/ \ / \
/ \ \
C(-2,2) D(0,2) E(2,2)

JSON:

{
"root": object, // Node at coordinate (0,0)
"A": object, // Node at coordinate (-1,-1)
"B": object, // Node at coordinate (1,1)
"C": object, // Node at coordinate (-2,-2)
"D": object, // Node at coordinate (0, 2)
"E": object, // Node at coordinate (2,2)
...
}

我希望能够维护一个坐标矩阵(二维数组),将节点名称存储在一个单元格中。

例如,像 matrix[0][0] 这样的查询应该产生 rootmatrix[0][2] 应该产生Dmatrix[-2][2],如果可能的话应该产生 C。这将允许我在给定 x 和 y 坐标的情况下在恒定时间内访问元素。


尝试:

var matrix = new Array([]);
matrix[x][y] = nodeName; // nodeName is keys: "root", "A", "B" etc.

但是,当 x 为负值时,我得到 Uncaught TypeError: Cannot set property '1' of undefined

如何使用数组或任何其他方式在 javascript 中定义坐标系?

最佳答案

我不使用数组,因为数组不适用于像这样的负索引,我会使用查找对象。

假设 x 和 y 始终是数字,这是一个可能的解决方案。

var lookupTable = {};

function setElement(x, y, value) {
lookupTable[x +"," + y] = value;
}

function getElement(x, y) {
return lookupTable[x +"," + y];
}

关于javascript - 在javascript中表示坐标,并在常数时间内访问元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59346452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com