Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 :-(

like image 705
sod Avatar asked Sep 14 '10 13:09

sod


1 Answers

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({});
like image 146
Kobi Avatar answered Oct 16 '22 00:10

Kobi