这句代码意思

发布于 2022-09-12 13:39:01 字数 424 浏览 18 评论 0

//多维转一维
    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), [])这段代码啥意思求解答谢谢。。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情话已封尘 2022-09-19 13:39:01
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的其他应用,可以参考下

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文