Javascript - 访问关联数组值时出错
Javascript - Error when accessing an associative array value
我有一个数组,位置:
{
"locations":[
"{\"location_id\":\"1\",\"location_name\":\"Main Office\"}",
"{\"location_id\":\"6\",\"location_name\":\"Secondary\"}"
]
}
我正在尝试遍历此数组以显示位置 id/name,但不断出现未定义的错误。
for (var i = 0; i < locations.length; ++i) {
alert(locations[i].location_id);
}
如果我这样做 alert(locations[i])
,我可以看到该索引的各个数组内容,但似乎无法再进一步。
我觉得我错过了一些非常简单的东西,非常感谢任何帮助。我读过的所有内容都表明我应该能够通过使用 for [i] 循环来获取数组的值。
定义如下:
let locations = [
{ location_id: 1, location_name: 'Main office'},
{ location_id: 2, location_name: 'any name' },
];
locations.forEach(location => {
alert(location.location_id);
});
或者如果您的数据是 json 格式:
let json = '{ "locations": [ { "location_id": 3, "location_name": "Name" } ]}';
const data = JSON.parse(json);
data.locations.forEach(location => {
console.log(location.location_id);
});
我将列出您查询中所有值得注意的问题
- “位置”数组似乎是另一个对象的一部分
- “locations”数组的所有元素都是
String
类型,因此 locations[i].location_id
将不起作用,因为“点”运算符需要一个对象
建议
- 确保“locations”是对象数组,格式正确,例如:
let locations = [
{ location_id: 1, location_name: 'Main office'},
{ location_id: 2, location_name: 'any name' },
];
我有一个数组,位置:
{
"locations":[
"{\"location_id\":\"1\",\"location_name\":\"Main Office\"}",
"{\"location_id\":\"6\",\"location_name\":\"Secondary\"}"
]
}
我正在尝试遍历此数组以显示位置 id/name,但不断出现未定义的错误。
for (var i = 0; i < locations.length; ++i) {
alert(locations[i].location_id);
}
如果我这样做 alert(locations[i])
,我可以看到该索引的各个数组内容,但似乎无法再进一步。
我觉得我错过了一些非常简单的东西,非常感谢任何帮助。我读过的所有内容都表明我应该能够通过使用 for [i] 循环来获取数组的值。
定义如下:
let locations = [
{ location_id: 1, location_name: 'Main office'},
{ location_id: 2, location_name: 'any name' },
];
locations.forEach(location => {
alert(location.location_id);
});
或者如果您的数据是 json 格式:
let json = '{ "locations": [ { "location_id": 3, "location_name": "Name" } ]}';
const data = JSON.parse(json);
data.locations.forEach(location => {
console.log(location.location_id);
});
我将列出您查询中所有值得注意的问题
- “位置”数组似乎是另一个对象的一部分
- “locations”数组的所有元素都是
String
类型,因此locations[i].location_id
将不起作用,因为“点”运算符需要一个对象
建议
- 确保“locations”是对象数组,格式正确,例如:
let locations = [
{ location_id: 1, location_name: 'Main office'},
{ location_id: 2, location_name: 'any name' },
];