我有类似的东西:
[ {}, {children:[{}, {}]} , {} ] #each element cane be any level deep
并希望在不递归的情况下对其进行迭代。只是为了测试性能优势。有什么帮助吗?
我有类似的东西:
[ {}, {children:[{}, {}]} , {} ] #each element cane be any level deep
并希望在不递归的情况下对其进行迭代。只是为了测试性能优势。有什么帮助吗?
每个递归函数都可以被简化为一个函数,它保留自己的堆栈 - 问题是:它更快吗?我猜不是。
我的意思是(在伪代码中)
function flatten(something) {
var ping=[];
var pong=[];
repeat {
if (ping is empty) {
if (something is empty) break;
else ping.prepend(something.shift());
}
var element=ping.shift();
if (element has children)
foreach (child of element in reverse order) ping.prepend(child);
else
pong.append(element);
}
return pong;
}
调用flatten(your_input_object)
将导致其条目的“天真人类枚举”列表
我可能错了,但是如果您能够检查数组中是否有以下元素,您可以编写嵌套的 while 循环吗?