繁体   English   中英

优雅的方式来初始化和扩展一个javascript数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM