Stavo facendo alcuni esercizi di javascript online (codewars.com). Un problema ha chiesto all'utente di prendere una matrice di oggetti array e rimuovere un livello dall'intera matrice.Come funziona l'uso specifico di "[]" come parametro?
[] /* becomes */ []
[[1, 2, 3], ["a", "b", "c"], [1, 2, 3]] /* becomes */ [1, 2, 3, "a", "b", "c", 1, 2, 3]
[[3, 4, 5], [[9, 9, 9]], ["a,b,c"]] /* becomes */ [3, 4, 5, [9, 9, 9], "a,b,c"]
ho finito per imparare a conoscere il metodo concat, ma la soluzione più popolare usato questa dichiarazione ...
function (arr){
return [].concat.apply([],arr);
}
Qualcuno può spiegare come utilizzare i []
qui? Non riesco a capire come questo produce i risultati corretti (e non fornisce spiegazioni sulla pagina). So che ci sono molte altre volte in cui vengono utilizzate parentesi vuote come parametri e array di etichette, quindi comprenderne l'utilizzo potrebbe aiutarmi a essere in grado di usarlo da solo in futuro.
Ottima spiegazione! Mi ci sono voluti un paio di letture da quando stavi aggiornando mentre andavi. Non ero veramente sicuro dall'inizio se il '[]' in '[] .concat' e il' ([], arr) 'erano lo stesso oggetto matrice. La tua continuazione per abbattere la riscrittura usando 'Array.prototype' e' call' e come sembra "più familiare" per me, come se mi avessi davvero fatto capire. Grazie mille! – JoeL