var temp = [{}]
var as = ['a', 'b']
for (i = 0; i < as.length; i++) {
temp[i].model = as[i]
}
我收到以下错误:
Cannot set property 'model' of undefined
最佳答案
好的,这应该可以帮助你:
var temp = [];
var as = ['a', 'b'];
for (i = 0; i < as.length; i++) {
temp[i] = temp[i] || {};
temp[i].model = as[i];
}
因为 as
可能比 temp
长,所以需要确保 temp[i]
存在,这正是 温度[i] = 温度[i] || {};
的作用是:
- 如果
temp[i]
存在,则不会执行任何操作。 - 如果
temp[i]
不存在,则会将一个新的空对象 ({}
) 分配给temp[i]
。
请注意,我从 temp = [{}]
--> temp = []
中删除了 {}
。现在您不需要那里的第一个空对象。
如果您绝对确定 temp
在循环之前永远不会包含任何值,您可以这样做:
for (i = 0; i < as.length; i++) {
temp[i] = { model: as[i] };
}
或者:
temp = as.map(function(item){ return { model: item }});
关于javascript - Json数组错误无法设置未定义的属性 'model',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31266093/