index.js 515 B

1234567891011121314151617181920212223
  1. module.exports = function flatten(list, depth) {
  2. depth = (typeof depth == 'number') ? depth : Infinity;
  3. if (!depth) {
  4. if (Array.isArray(list)) {
  5. return list.map(function(i) { return i; });
  6. }
  7. return list;
  8. }
  9. return _flatten(list, 1);
  10. function _flatten(list, d) {
  11. return list.reduce(function (acc, item) {
  12. if (Array.isArray(item) && d < depth) {
  13. return acc.concat(_flatten(item, d + 1));
  14. }
  15. else {
  16. return acc.concat(item);
  17. }
  18. }, []);
  19. }
  20. };