我遇到了问题:
例如,有N代,我希望像父母和孩子一样在jstree中执行这些代。
我只能使用固定数量的嵌套for
循环。我不知道如何让它变得动态,即我想嵌套N for
个循环。
我该怎么做?
我只能使用固定数量的嵌套循环,例如
for (i=0;i<=list1.size;i++){
for (j=0;j<=list2.size;j++){
// and some other loops
}
}
但这是静态的。我希望能够动态执行N个循环。
答案 0 :(得分:2)
正如您所说,您不能拥有任意数量的嵌套for循环。实现此目的的方法是使用recursion。
以下是一个例子:
function foo(list_of_lists) {
// base case
if (list_of_lists.length == 0) return;
// otherwise, we'll get the head of the list, and continue
list = list_of_lists[0];
for (var idx = 0; idx <= list.length; idx++) {
// do something
// now recursively nest the next list in a for-loop
foo(list_of_lists.splice(1));
}
}
对于N个列表,这将构建嵌套的for循环,如下所示:
for (var idx = 0; idx <= list0.length; idx++) {
for (var idx2 = 0; idx2 <= list2.length; idx2++) {
for (var idx3 = 0; idx3 <= list3.length; idx3++) {
...
}
}
}
答案 1 :(得分:0)
如果你需要一个特定于jstree的解决方案 - 将core.data
设置为一个函数 - 每次需要加载一个节点时它都会被执行 - 这样你就可以拥有一个&#34;无限的&#34;动态树可以这么说。