2016-08-01 19 views
0

Beispielcode mit den tatsächlichen Ergebnissen und Browser-Version (User-Agent):Warum reduziert das Array in JavaScript die Parameter zur Funktionsänderung nach der ersten Iteration?

> [{count:1},{count:2},{count:3}].reduce(function(prev,curr){console.log(arguments);return 5;}) 
[Object, Object, 1, Array[3]] 
[5, Object, 2, Array[3]] 
5 
> navigator.appVersion 
"5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36" 

Beispielcode mit den erwarteten Ergebnissen:

-> [{count:1},{count:2},{count:3}].reduce(function(prev,curr){console.log(arguments);return 5;}) 
[0, Object, 0, Array[3]] 
[5, Object, 1, Array[3]] 
[5, Object, 2, Array[3]] 
5 

MDN-Link: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce anderen Link: https://danmartensen.svbtle.com/javascripts-map-reduce-and-filter#reduce_1

Antwort

0

Ah, Ich habe die Verwendung der Anfangswertfunktion durch die Leute vermisst, damit sie mit einer Zahl beginnt und keine Iteration überspringt, was nicht dazu führt, dass das erste Ergebnis von einem anderen Typ als a ist Nummer aus meinem Beispiel ..

Arbeitsbeispielcode mit Kleingeld und die tatsächlichen Ergebnisse:

-> [{count:1},{count:2},{count:3}].reduce(function(prev,curr){console.log(arguments);return 5;}, 0) 
[0, Object, 0, Array[3]] 
[5, Object, 1, Array[3]] 
[5, Object, 2, Array[3]]