Ich habe einige Szenarien mit Array-Reduce-Funktion getestet.Explizite Weitergabe des Anfangswerts als undefiniert in Array reduzieren
[1,2].reduce(function(initial , val){
return initial+val;
} ,1)
// returns 4 as expected
[1,2].reduce(function(initial , val){
return initial+val;
})
// returns 3
aber ausdrücklich undefined
als Anfangswert vorbei
[1,2].reduce(function(initial , val){
return initial+val;
}, undefined)
// returns NaN.
Es scheint mir ungewöhnlich.
Kasse die Syntax der Array reduzieren '' 'arr.reduce (Callback [, initial ]) '' 'Dabei wird der Anfangswert als erstes Argument für den ersten Aufruf des Callbacks verwendet. –
Ich habe das gesehen. Im ersten Fall ignoriert es das anfängliche undefinierte aber im zweiten Fall gibt es NaN zurück. Lassen Sie mich ein weiteres Beispiel zur besseren Übersicht hinzufügen – ajaykumar
es ist, weil Sie versuchen, '' '' undefined'' mit einer Zahl zu versuchen '' '[1,2] .reduce (function (initial, val)) { initial = initial ? initial: 0 return initial + val; }, undefined) '' ' –