JSON- unturew typeError:无法读取未定义的属性(读取'0')
2022-04-26
1941
当我尝试返回
JSON
的
.Name
时,出现此错误“未捕获 TypeError:无法读取未定义的属性(读取‘0’)”。
这是我的 javascript(console.log 用于测试):
var roomsCodes = [
['232','DDSB'],
['232','DDMB'],
['232','SJJB'],
['232','SJJS'],
];
var jsonMin =
{
"DDSB": {
"Name": "Doble Estándar",
},
"DDMB": {
"Name": "Doble con vista mar",
},
"SJJB": {
"Name": "Jr. Suite",
},
"SJJS": {
"Name": "Jr. Suite Superior",
},
}
for(var p = 0; p < roomsCodes.length; p++){
if(232 == roomsCodes[p][0]){
console.log(jsonMin.roomsCodes[p][1].Name);
}
}
2个回答
您可以使用 [] 访问对象来修复它,如下所示:
var roomsCodes = [
["232", "DDSB"],
["232", "DDMB"],
["232", "SJJB"],
["232", "SJJS"]
];
var jsonMin = {
DDSB: {
Name: "Doble Estándar"
},
DDMB: {
Name: "Doble con vista mar"
},
SJJB: {
Name: "Jr. Suite"
},
SJJS: {
Name: "Jr. Suite Superior"
}
};
for (var p = 0; p < roomsCodes.length; ++p) {
if (232 == roomsCodes[p][0]) {
console.log(jsonMin[roomsCodes[p][1]].Name);
}
}
当您想要使用动态变量访问属性时,您需要使用方括号,否则您可以使用点。
mgm793
2022-04-26
var roomsCodes = [
['232','DDSB'],
['232','DDMB'],
['232','SJJB'],
['232','SJJS'],
];
var jsonMin =
{
"DDSB": {
Name: "Doble Estándar",
},
"DDMB": {
Name: "Doble con vista mar",
},
"SJJB": {
Name: "Jr. Suite",
},
"SJJS": {
Name: "Jr. Suite Superior",
},
}
for(var p = 0; p < roomsCodes.length; p++){
if(232 == roomsCodes[p][0]){
const item = roomsCodes[p][1]
console.log(jsonMin[item].Name)
}
}
ACCode
2022-04-26