首页 > 解决方案 > 在reduce中将空数组设置为空数组中的初始值

问题描述

当对一个空数组设置为初始值的空数组执行reduce时,显然不能将一个值推送到该初始空数组(无法推送),而当对一个数组执行reduce时可以一个空值。为什么它在没有空值的第一个场景中不起作用?

为什么不[]设置为初始值(reduce的第二个参数)算作一个元素?例如,您可以对一个空数组执行 reduce,并将 0 设置为初始值: [].reduce((prev, curr) => prev + curr, 0) // 0

[].reduce((arr, curr) => {
    arr.push('val')
    return arr
}, []);
// []
[null].reduce((arr, curr) => {
    arr.push('val')
    return arr
}, []);
// ['val']

标签: javascript

解决方案


空数组没有元素,因此它不会运行 reduce 函数。但是 [null] 数组只有一个元素“null”。所以这个数组运行reduce函数。


推荐阅读