Array.prototype.reduce() 对一个元素的数组

2023-12-11

在下面reduction + map操作,没有。 3让我很困惑。谁能解释一下为什么

// 1
[1,2,3,4,5].filter(x => x==3).reduce((x, y) => y) // -> 3, all good

// 2
[1,2,3,4,5].filter(x => x<=3).reduce((x, y) => 0) // -> 0, still good

// 3
[1,2,3,4,5].filter(x => x==3).reduce((x, y) => 0) // -> 3, hello?

换句话说:为什么数组中一个元素的减少会忽略映射到0手术?这最终将用于对象数组,如.reduce((x,y) => y.attr)这也返回y代替y.attr对于单元素数组。


过滤后的数组仅包含一个元素,因此reduce 将返回该值。

阅读文档:

如果数组只有一个元素(无论位置如何)并且没有提供initialValue,或者如果提供了initialValue但数组为空,则将返回solo值而不调用回调。

了解更多:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Array.prototype.reduce() 对一个元素的数组 的相关文章

随机推荐