码迷,mamicode.com
首页 > Web开发 > 详细

JS flatten 简单实现

时间:2018-01-29 16:12:29      阅读:684      评论:0      收藏:0      [点我收藏+]

标签:ret   push   amr   challenge   简单实现   http   tps   ror   []   

刷 freecodecamp 的中级 JavaScript 到此 https://freecodecamp.cn/challenges/steamroller
而在该题目中需要 flatten 的实现:

于是手刷:

function steamroller(arrs) {
  if (!arrs || !arrs.length) throw new ReferenceError();
  var arr = [];

  (function flatten (items) {
    items.forEach(function(item){
      if (item !== undefined && item !== null) {
        if (Array.isArray(item)) {
          arr.push(flatten(item));
        } else {
          arr.push(item);
        }
      }
    });
  }(arrs));

  arr = arr.filter(function(item){
    return item;
  });

  return arr;
}

steamroller([1, [2], [3, [[4]]]]);

JS flatten 简单实现

标签:ret   push   amr   challenge   简单实现   http   tps   ror   []   

原文地址:https://www.cnblogs.com/givingwu/p/8376639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!