Besides style, is there any performance penalty paid by shift? In the docs I see:
"Shifts the first value of the array off and returns it, shortening the array by 1 and moving everything down."
My reading of this makes me think that shift is potentially an expensive operation, because it has to "shift" the front of the area off, and then copy the remaining elements all back one position.