2012-05-24 12 views
13

Ich möchte nur bestätigen, wenn die beiden folgenden Javascript-Anweisungen die gleichen Ergebnisse erzeugt, wie es mir scheint:Javascript "shift" versus "splice" - sind diese Aussagen gleich?

Erstens:

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

Zweitens:

var element = my_array.shift(); 

Ich möchte ersetzen die erste nach der zweiten, in meinem eigenen Code, um die Lesbarkeit zu verbessern. Darf ich das machen?

+1

Ja, die beiden sind gleichwertig. –

+0

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

Antwort

24

Sie werden den gleichen Effekt haben, ja. splice(0, 1) entfernt das erste Element von my_array und gibt ein neues Array zurück, das dieses Element enthält. shift wird das gleiche tun, aber das Element selbst zurückgeben, kein Array.

shift lesbarer ist (meiner Meinung) und ist auch significantly faster (in Chrome mindestens):

enter image description here

+0

Ich habe die Antwort von allen aufgemotzt - aber wegen der zusätzlichen Grafik und der Informationen für die eigene gewählt. Dank an alle! –

5

Beide Codezeilen entfernen das erste Element aus dem Array und geben das entfernte Element zurück. Beide werden in allen gängigen Browsern unterstützt.

Sie sollten die zweite verwenden, und der Code wird in der Tat lesbarer sein.

2

shift Gibt das Element, das entfernt wurde, splice gibt einen Array von Elementen, die entfernt wurden, .

die beiden Aussagen machen das gleiche und ich würde zustimmen, dass die zweite besser lesbar ist.

Verwandte Themen