[英]Elegant way to init and extend a javascript array
如果尚未启动数组,是否有一种甜蜜的方式来初始化数组? 目前代码看起来像:
if (!obj) var obj = [];
obj.push({});
很酷就像var obj = (obj || []).push({})
,但这不起作用:-(
var obj = (obj || []).push({})
不起作用,因为push
返回数组的新长度。 对于新对象,它将创建值为1的obj
。对于现有对象,它可能引发错误 - 如果obj
是数字,则它没有push
功能。
你应该做的就是:
var obj = obj || [];
obj.push({});
我能想到的最好的是:
var obj;
(obj = (obj || [])).push({});
只需对您的想法进行微调即可使其正常工作
var obj = (obj || []).concat([{}]);
with(obj = obj || []) push({});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.