Dlaczego, gdy chcę użyć funkcji wypychania wewnątrz funkcji zmniejszania, aby zwrócić nową tablicę, pojawia się błąd. Jednakże, gdy używam metody concat w funkcji zmniejszenia, zwraca ona nową tablicę bez problemu.Korzystanie z funkcji zmniejszenia w celu zwrócenia tablicy
Wszystko, co próbuję zrobić, to przekazać tablicę do funkcji zmniejszenia i zwrócić tę samą tablicę.
var store = [0,1,2,3,4];
var stored = store.reduce(function(pV,cV,cI){
console.log("pv: ", pV);
return pV.push(cV);
},[]);
Powoduje błąd. Ale kiedy używam concat:
var store = [0,1,2,3,4];
var stored = store.reduce(function(pV,cV,cI){
console.log("pv: ", pV);
return pV.concat(cV);
},[]);
Zwraca tę samą tablicę.
Jakieś pomysły, dlaczego?
'return PV.push' oznacza, że w następnej iteracji, PV będzie liczbą, a nie tablicą, ponieważ push zwraca długość tablicy - jeśli chcesz, możesz zrobić 'return pV.push (cV), pV;' - choć istnieje brak korzyści z wyjątkiem 1 mniejszej linii kodu, np. 'pV.push (cV); return pV; ' –
jeśli wszystko, co chcesz zrobić, to" skopiować "tablicę ...' var stored = store.slice(); 'zrobi –
Aby zwrócić nową tablicę z tablicy, potrzebujesz' map' nie ' zmniejszyć ". – Jamiec