Javascript Json数组错误无法设置属性';型号';未定义的 var temp=[{}] 变量as=['a','b'] 对于(i=0;i

Javascript Json数组错误无法设置属性';型号';未定义的 var temp=[{}] 变量as=['a','b'] 对于(i=0;i,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我得到以下错误: 无法设置未定义的属性“model” temp的长度为1,as的长度为2临时[1]因此未定义 我认为这更好地传达了代码的意图,并且是正确的: var temp = [{}] var as = ['a', 'b'] for (i = 0; i < as.length; i++) { temp[i].model = as[i] } var-temp=[]; 变量as=['a','b']; 对于(变量i=0;i控制台日志(临时) 如果您有任何澄清您在代码中声明了数据的

我得到以下错误:

无法设置未定义的属性“model”


temp
的长度为1,
as
的长度为2<代码>临时[1]因此未定义

我认为这更好地传达了代码的意图,并且是正确的:

var temp = [{}]
var as = ['a', 'b']
for (i = 0; i < as.length; i++) {
    temp[i].model = as[i]
}
var-temp=[];
变量as=['a','b'];
对于(变量i=0;i
好的,这应该能帮到你:

var temp = [];
var as = ['a', 'b'];

for (var i = 0; i < as.length; i++) {
    temp[i] = {model: as[i]};
}
或:


要始终在
temp
中有足够的值,您可以事先填充它:

temp = as.map(function(item){ return { model: item }});
var as=['a','b'];
var temp=as.map(函数(){return{};});
对于(i=0;i
试试这个

var as = ['a', 'b'];
var temp = as.map(function() { return {}; });
for (i = 0; i < as.length; i++) {
    temp[i].model = as[i]
}
var-temp=[];
变量as=['a','b']
对于(i=0;i
这很简单

使用下面的方法解决您的问题

var temp = [];
var as = ['a', 'b']
for (i = 0; i < as.length; i++) {
    temp.push({'model':as[i]});
}
console.log(temp);
>var temp=[[]];(i=0;i临时推送({model:as[i]})的var as=['a','b']
> 
>控制台日志(临时)

如果您有任何澄清

您在代码中声明了
数据
的地方?您在代码中声明了'arr'的地方?当
i==1
时会发生这种情况,因为
temp[1]
没有定义;临时修复:
var temp=[{},{}]
那我能做些什么呢?@Ja͢ck但这只适用于两个val我不知道长度var temp=[{},{},…];@jack有了这个,你也可以从一个空数组开始:)它可能也值得将新对象推到数组中,否则在迭代完成后它将丢失。@Ja͢ck:打得好,谢谢。罗里:我不太明白。。。什么东西丢了?@surajrawat:有什么特别的东西你不明白吗?@Cerburs现在得到你的解释了。。谢谢接受你的答案:)这个循环两次。老实说,我不会这么做的。是的,的确如此;但是OP提供的代码似乎已经假设应该存在一些东西,比如,除了
{}
之外的东西。无论如何,这只是一个不同的有利位置。
var as = ['a', 'b'];
var temp = as.map(function() { return {}; });
for (i = 0; i < as.length; i++) {
    temp[i].model = as[i]
}
var temp = [];
var as = ['a', 'b']
for (i = 0; i < as.length; i++) {
    temp.push({'model':as[i]});
}
console.log(temp);
> var temp =[[]]; var as = ['a','b'] for(i=0;i<as.length;i++){  
> temp.push({model : as[i]}) }
> 
> console.log(temp)