Perché quando si desidera utilizzare la funzione di spinta all'interno della funzione di riduzione per restituire un nuovo array, viene visualizzato un errore. Tuttavia, quando uso il metodo concat all'interno della funzione reduce, restituisce un nuovo array senza problemi.Utilizzo della funzione di riduzione per restituire un array
Tutto quello che sto cercando di fare è passare un array alla funzione di riduzione e restituire lo stesso array.
var store = [0,1,2,3,4];
var stored = store.reduce(function(pV,cV,cI){
console.log("pv: ", pV);
return pV.push(cV);
},[]);
Questo restituisce un errore. Ma quando uso concat:
var store = [0,1,2,3,4];
var stored = store.reduce(function(pV,cV,cI){
console.log("pv: ", pV);
return pV.concat(cV);
},[]);
Restituisce lo stesso array.
Qualche idea, perché?
'return PV.push' significa sulla prossima iterazione, PV sarà un numero, non un array, perché push restituisce la lunghezza dell'array - se vuoi, puoi fare 'return pV.push (cV), pV;' - però, c'è nessun beneficio tranne per 1 riga di codice in meno, ad esempio 'pV.push (cV); return pV; ' –
se tutto ciò che si vuole fare è" copiare "l'array ...' var stored = store.slice(); 'farà –
Per restituire un nuovo array da un array, si desidera' map' not' reduce'. – Jamiec