2012-05-24 11 views
13

Voglio solo confermare se le seguenti due istruzioni Javascript produce gli stessi risultati, come sembra a me:Javascript "shift" contro "splice" - queste affermazioni sono uguali?

Primo:

var element = my_array.splice(0,1)[0]; 

Secondo:

var element = my_array.shift(); 

voglio sostituire il primo al secondo, nel mio codice, per migliorare la leggibilità. Posso farlo?

+1

Sì, i due sono equivalenti. –

+0

http://www.webartzforum.com/t3019-javascript-shift-slice-splice – Rab

risposta

24

Avranno lo stesso effetto, sì. splice(0, 1) rimuoverà il primo elemento da my_array e restituirà un nuovo array contenente quell'elemento. shift farà lo stesso, ma restituirà l'elemento stesso, non un array.

shift è più leggibile (a mio parere) ed è anche significantly faster (in Chrome almeno):

enter image description here

+0

Ho svalutato la risposta di tutti, ma ho scelto il tuo a causa della grafica e delle informazioni extra. Grazie a tutti! –

5

Entrambe le righe di codice rimuovono il primo elemento dall'array e restituiscono l'elemento rimosso, entrambi sono supportati in tutti i principali browser.

È necessario utilizzare il secondo e il codice sarà più leggibile.

2

shift restituisce l'elemento che è stato rimosso, splice restituisce un array di elementi che sono stati rimossi .

detto questo, le due dichiarazioni fanno la stessa cosa e sono d'accordo sul fatto che il secondo sia più leggibile.

Problemi correlati