将数据推送到javascript对象中不起作用

时间:2019-01-25 08:41:26

标签: javascript jquery

我想将数据推送到Javascript对象中,但是我做不到。

var obj = {};
if(cust_opt_title == "Size"){
    obj['Size'] = {'custom_option_select_text': 'Red + $200.00'};
    obj['Size'].push({'custom_option_select_text': 'Red + $200.00'}); // I tried this also
} else {
    obj['Color'] = {'custom_option_select_text': 'Red + $200.00'};
    obj['Color'].push({'custom_option_select_text': 'Red + $200.00'}); // I tried this also
}

我想要这样的输出:

enter image description here

2 个答案:

答案 0 :(得分:3)

您需要先创建一个数组(如果不存在),然后再推入一个值。

Array#pushArray的一种方法。

var obj = {},
    cust_opt_title = 'Size';

if (cust_opt_title === "Size") {
    obj['Size'] = obj['Size'] || [];
    obj['Size'].push({ custom_option_select_text: 'Red + $200.00' });
} else {
    obj['Color'] = { custom_option_select_text: 'Red + $200.00' };
}

console.log(obj);

答案 1 :(得分:1)

obj ['size']不是数组,因此您不能将其压入(只能压入数组)。我看到您想将多个对象放入对象属性中,并且我认为您希望它们成为数组,即使它们保持为空。因此您需要先将它们定义为数组

var obj = {
    'Size': [],
    'Color': []
};

if(cust_opt_title === "Size"){
    obj['Size'].push({'custom_option_select_text': 'Red + $200.00'});
} else {
    obj['Color'].push({'custom_option_select_text': 'Red + $200.00'});
}

顺便说一句,我说“我认为你想要...”的事实意味着您的问题还不够清楚。