这句代码意思

//多维转一维
    let arr = [
        [1],
        [2, 3],
        [4]
    ];
    const newArr = function(arr) {
        return arr.reduce((pre, cur) => pre.concat(Array.isArray(cur) ? newArr(cur) : cur), [])
    }
    console.log(newArr(arr)); //[1, 2, 3, 4]
    
    

return arr.reduce((pre, cur) => pre.concat(Array.isArray(cur) ? newArr(cur) : cur), [])这段代码啥意思求解答谢谢。。

阅读 2.1k
2 个回答
const newArr = function(arr) {
    return arr.reduce((pre, cur) => {// 这是个箭头函数
        // 判断cur 是否为数组:是数组则 newArr(cur) 递归调用
        // 一直到cur不是数组了,则赋值给tmp
        let tmp = Array.isArray(cur) ? newArr(cur) : cur;
        // 把tmp和pre拼接起来,作为返回值
        return pre.concat(tmp);
    }, [])
}

reduce遍历数组

[1,2,3].reduce(callback, initValue);
[1,2,3].reduce((pre, current, index, array)=>{
    console.log(pre, current, index, array);
}, 0);

这里有reduce的其他应用,可以参考下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏