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

时间:2016-05-10 16:09:41

标签: javascript arrays reduction

在以下sudo dpkg -i graphviz_2.38.0-13_amd64.deb sudo dpkg -i python-pygraphviz_1.3.1-1_amd64.deb 操作中,没有。 3令我困惑。任何人都可以解释原因

reduction + map

换句话说:为什么减少一个元素的数组忽略了// 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

1 个答案:

答案 0 :(得分:4)

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

阅读文档:

  

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

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