Search code examples
javascriptarrays

Elegant way to init and extend a javascript array


Is there a sweet way to init an array if not already initilized? Currently the code looks something like:

if (!obj) var obj = [];
obj.push({});

cool would be something like var obj = (obj || []).push({}), but that does not work :-(


Solution

  • var obj = (obj || []).push({}) doesn't work because push returns the new length of the array. For a new object, it will create obj with value of 1. For an existing object it might raise an error - if obj is a number, it does not have a push function.

    You should do OK with:

    var obj = obj || [];
    obj.push({});