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);
});

我将列出您查询中所有值得注意的问题

  1. “位置”数组似乎是另一个对象的一部分
  2. “locations”数组的所有元素都是 String 类型,因此 locations[i].location_id 将不起作用,因为“点”运算符需要一个对象

建议

  1. 确保“locations”是对象数组,格式正确,例如:
let locations = [
    { location_id: 1, location_name: 'Main office'},
    { location_id: 2, location_name: 'any name' },
];