refactor flatten
This commit is contained in:
parent
328ae0769f
commit
59ebe873f7
1 changed files with 5 additions and 10 deletions
15
mithril.js
15
mithril.js
|
|
@ -394,17 +394,12 @@ Mithril = m = new function app(window, undefined) {
|
|||
return nodes
|
||||
}
|
||||
function flatten(data) {
|
||||
var index = 0;
|
||||
loop: while (true) {
|
||||
for (var i = index; i < data.length; i++) {
|
||||
var item = data[i];
|
||||
if (type.call(data[i]) == sArr) {
|
||||
index = i;
|
||||
data = data.concat.apply([], data);
|
||||
continue loop
|
||||
}
|
||||
//recursive flatten
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (type.call(data[i]) == sArr) {
|
||||
data = data.concat.apply([], data);
|
||||
i-- //check current index again and flatten until there are no more nested arrays at that index
|
||||
}
|
||||
break
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue