0
在以下reduction + map
操作中,no。 3令我困惑。任何人都可以請解釋爲什麼array.prototype.reduce()對一個元素的數組
// 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
。
只有一個元素有規範的 –
部分:「如果陣列僅具有一個元素(不管位置)和無初值被提供,或者如果初值設置,但數組是空的,獨奏值將被返回而不調用回調。「 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce –
這顯然不得不導致一些RTFM的答案。非常感謝您爲我打電話給我的一天! –