Javascript "shift" versus "splice" - are these statements equal?

J. Bruni picture J. Bruni · May 24, 2012 · Viewed 12.4k times · Source

I just want to confirm if the following two Javascript statements produces the same results, as it seems to me:

First:

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

Second:

var element = my_array.shift();

I want to substitute the first by the second, in my own code, to improve readability. Can I do this?

Answer

James Allardice picture James Allardice · May 24, 2012

They will have the same effect, yes. splice(0, 1) will remove the first element from my_array and return a new array containing that element. shift will do the same, but return the element itself, not an array.

shift is more readable (in my opinion) and is also significantly faster (in Chrome at least):

enter image description here