How to unshift or add to the beginning of arguments object in JavaScript

10,100
  1. use .call() instead of .apply() to invoke unshift()

  2. set arguments as the this value of unshift()

  3. set 'hello' as the argument to unshift()


Array.prototype.unshift.call(arguments, 'hello');

As @lonesomeday pointed out, you can use .apply() instead of .call(), but you need to pass an array-like argument as the second argument. So in your case, you'd need to wrap 'hello' in an Array.

Share:
10,100
at.
Author by

at.

Updated on July 29, 2022

Comments

  • at.
    at. almost 2 years

    I've just learned the convention for popping off the first element of the arguments array (which I also learned is actually an Object). Now I need to do the opposite. I need to use an unshift operation to add a value to the beginning of the arguments array (or Object acting like an array). Is this possible? I tried:

    Array.prototype.unshift.apply('hello', arguments);
    

    That had no effect on arguments whatsoever.

  • lonesomeday
    lonesomeday over 10 years
    You could also do apply(arguments, ['hello']).
  • piotr_cz
    piotr_cz over 9 years
    This gives me a strange result in Chrome: ['hello', 'argument1', undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]