You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
515 B
23 lines
515 B
module.exports = function flatten(list, depth) { |
|
depth = (typeof depth == 'number') ? depth : Infinity; |
|
|
|
if (!depth) { |
|
if (Array.isArray(list)) { |
|
return list.map(function(i) { return i; }); |
|
} |
|
return list; |
|
} |
|
|
|
return _flatten(list, 1); |
|
|
|
function _flatten(list, d) { |
|
return list.reduce(function (acc, item) { |
|
if (Array.isArray(item) && d < depth) { |
|
return acc.concat(_flatten(item, d + 1)); |
|
} |
|
else { |
|
return acc.concat(item); |
|
} |
|
}, []); |
|
} |
|
};
|
|
|