JS flatten 简单实现

Posted 月光宝盒造梦师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS flatten 简单实现相关的知识,希望对你有一定的参考价值。

刷 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 简单实现的主要内容,如果未能解决你的问题,请参考以下文章

-----js实现数组扁平化-----

angularJS使用ocLazyLoad实现js延迟加载

代码片段 - Golang 实现简单的 Web 服务器

javascript array flatten #js #array

javascript array flatten #js #array

javascript array flatten #js #array