我有一个大问题,但我不知道如何解决它。
我有一个json文件,其中包含元素及其在网格中的位置。 所有可能的元素都有子元素,子元素从零(0,0)重新编入索引。
我需要将相对位置转换为“绝对位置”。位置。
示例json文件:
{
label: 'item 1',
position: {x: 0, y: 0},
childrens: [
{
label: 'item 1 children 1'
position: {x: 1, y: 0}
},
{
label: 'item 1 children 2',
position: {x: 2, y: 0}
}
]
},
{
label: 'item 2',
position: {x: 1, y: 0},
childrens: [
{
label: 'item 2 children 1',
position : {x: 0, y: 2}
}
]
}
答案 0 :(得分:0)
保持绝对偏移。
从根节点的偏移量(0,0)开始。然后当你到达一个孩子时,计算左上角的绝对坐标,并用计算出的坐标作为新的绝对偏移来调用递归函数。
对于常规项目,将绝对偏移量添加到项目坐标以获取绝对坐标。
在您的示例中,您以offset(0,0)开头。然后你到达子矩形。您计算左上角应位于位置(2,0)并将其作为偏移量发送到递归调用中。到达子项内的第一个块时,您将绝对坐标计算为子相对坐标:(0,0)+绝对坐标:(2,0)得到(2,0)。