[英]Json array error Cannot set property 'model' of undefined
var temp = [{}]
var as = ['a', 'b']
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[i] = temp[i] || {};
temp[i].model = as[i];
}
因為as
可以比temp
,所以您需要確保temp[i]
存在,這正是temp[i] = temp[i] || {};
temp[i] = temp[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 }});
temp
長度為1, as
長度as
2。因此, temp[1]
未定義。
我認為這可以更好地傳達代碼的意圖,並且是正確的:
var temp = [];
var as = ['a', 'b'];
for (var i = 0; i < as.length; i++) {
temp[i] = {model: as[i]};
}
要始終保持足夠的temp
值,您可以預先填充它:
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)
讓我知道你是否有任何澄清
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.