1. 程式人生 > >JS flatten 簡單實現

JS flatten 簡單實現

def row pre .cn isa team cnblogs func 需要

刷 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 簡單實現