我想通过名为“data”的嵌套varlist进行递归,并将其存储在QML中作为var
。它包含一个名为"delegates": [ { ... }, ... , { ... } ]
的属性,它为一些代表声明了一些属性。如果其中一个属性子列表包含一个属性“"data"
我有另一个可以通过该特定代表的动作遍历的子级别QML/Javascript:向子数组添加自引用属性内嵌嵌套var匹配某些标识符
我想要做的是创建一个函数来递归追加到我的varlist如果data.delegates[0].data
存在,我想追加相当于data.delegates[0].data.parentPointer: data
;如果data.delegates[0].data.delegates[0].data
存在,我想追加一个与子级名称匹配的子级别的指针("data"
)相当于data.delegates[0].data.delegates[0].data.parentPointer: data.delegates[0].data
等等......
我并不特别关心(计算)成本,因为这是一个t 的Component.onCompleted
中的ime事件,并且嵌套最多只有几层。
这是一个Javascript问题,我相信,因为我相信自动创建自引用指针的方式是通过某种递归调用function
(这是通过定义在JavaScript中用于QML)。我知道该怎么做追加简单var
套在Javascript操作在QML:
function appendStuff(myVar) {
var temp = myVar
temp.push("stuff")
myVar = temp
}
,我知道我可以在Javascript中有条件地检查指定的属性瓦特/在var
,如:
if (typeof currentLevel.data !== "undefined") {
//do stuff....
}
然而,我在递归方面挂了 - 如何重建一个多级数组 - 同时正确地跟踪我在原始数组中的位置,直到我的编辑版本完成。我也意识到,当涉及到"parentPointer"
时,我可能会需要我的编辑版本来引用它自己,这有点棘手。
任何想法?
你能包括输入数据和期望的输出数据吗? – naomik