refactor flatten

This commit is contained in:
Leo Horie 2014-11-13 21:15:07 -05:00
parent 328ae0769f
commit 59ebe873f7

View file

@ -394,17 +394,12 @@ Mithril = m = new function app(window, undefined) {
return nodes return nodes
} }
function flatten(data) { function flatten(data) {
var index = 0; //recursive flatten
loop: while (true) { for (var i = 0; i < data.length; i++) {
for (var i = index; i < data.length; i++) { if (type.call(data[i]) == sArr) {
var item = data[i]; data = data.concat.apply([], data);
if (type.call(data[i]) == sArr) { i-- //check current index again and flatten until there are no more nested arrays at that index
index = i;
data = data.concat.apply([], data);
continue loop
}
} }
break
} }
return data return data
} }