展平嵌套数组

Flattening nested array

我正在尝试展平嵌套数组,但未定义。我最近学习了 reduce 并且正在尝试应用相同的逻辑。

var list2 = [0, [1, [2, [3, [4, [5]]]]]];

function flat3(arr){
  arr.reduce(function(result, val, index){
    if(Array.isArray(val)){
      result = result.concat(val);
      flat3(val);
    } else {
      result.push(val);
    }
    return result;
  }, []);
}

console.log(flat3(list2));

我不确定。为什么?我错过了什么?

您没有返回 flat3 的值。这就是您要查找的内容:

var list2 = [0, [1, [2, [3, [4, [5]]]]]];

function flat3(arr) {
  return arr.reduce(function(result, val, index) {
    if (Array.isArray(val)) {
      result = result.concat(flat3(val));
    } else {
      result.push(val);
    }
    return result;
  }, []);
}

console.log(flat3(list2));