所以即时编辑一些代码,我想将另一个变量添加到数组中。以下代码完美运行:
submit.addAttributeValue = function() {
var aValue = submit.status.newAttributeValue;
var aType = submit.status.selectedAttributeType;
console.log('adding value', aValue, aType)
if(aValue && aType ) {
submit.ProductMeta['attributes'][aType][aValue] = true;
};
};
然后我将变量aPrice添加到函数中:
submit.addAttributeValue = function() {
var aValue = submit.status.newAttributeValue;
var aType = submit.status.selectedAttributeType;
var aPrice = submit.status.newAttributePrice;
console.log('adding value', aValue, aType, aPrice)
if(aValue && aType ) {
submit.ProductMeta['attributes'][aType][aValue][aPrice] = true;
};
};
我收到错误:
Error: submit.ProductMeta.attributes[aType][aValue] is undefined
submit.addAttributeValue@http://dubdelivery.com/js/controllers-submit.js:369:13
ProductMeta定义为:submit.ProductMeta = {};
关于我应如何处理此问题的任何建议?
谢谢!
答案 0 :(得分:3)
您的数组为空,因此您无法在第一个
之前设置第二级字段如果你有
var obj = {};
你必须设置
obj.firstItem
前
obj.firstItem.secondItem
这是example
答案 1 :(得分:0)
查看调试器或只是控制台记录" aType"," aValue"和" aPrice"。我打赌" aValue"未定义。
如果您要以这种方式操作对象属性,则必须确保包含属性名称的变量实际上具有值。
(顺便说一句,特别是现在使用ES6类,你可能不应该以这种方式操纵对象属性/值)。