我需要在对象temp中创建一个2级层次结构。我写了以下内容:
var temp = {};
temp['mailboxes'].push("First");
以下代码给出了一个错误,指出no method push of undefined
,这是可以理解的,因为我知道在使用数组/对象时,需要首先声明它们。有没有直接的方法来做到这一点,以便在必须使用var之前我不必声明相同的内容?
例如,我想避免这样做:
var temp = {};
temp['mailboxes'] = [];
答案 0 :(得分:2)
var temp = { mailboxes: [] }
据我所知,javascript没有简单的方法来提供像python的defaultdict
这样的默认值。
答案 1 :(得分:1)
正确的方法是在对象中声明邮箱数组,如:
var temp = {mailboxes: []};
这样,当您按下数组中的值时,JS引擎将知道在哪里推送值。如果不先声明它就不能这样做。你想要做的是在空对象的未定义字段中推送值,这将导致错误。
答案 2 :(得分:0)
也许这可以帮助
var temp = {};
temp.mail = new Array();
temp.mail.push("email");
temp.mail.push("email");
首先需要先初始化object属性 操纵内容;