У меня проблема с получением объектов в массиве. В моем случае у меня есть файл JSON с объектом и его идентификаторами. Я хочу получить объект, найдя его идентификатор. Поэтому я хочу получить Objekt (101 и 103) для дальнейших вычислений. (В C++ это будет карта, а затем итерация до 101 будет найдена и возвращена.) В Javascript я получил эту ошибку: «TypeError: region [i] [103] undefined». Я не знаю, что случилось. Или есть лучший способ получить объект по его идентификатору?Получить объект, указанный в массиве
Вот пример кода:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<title>Unbenanntes Dokument</title>
</head>
<body>
<div id="results"></div>
<script>
var region = [
{
"101": {
"id":101,
"name":"Eisenstadt(Stadt)",
"pop":13485,
"lat":47.845876,
"lng":16.518073,
"FIELD6":"",
"FIELD7":"" }
},
{
"102": {
"id":102,
"name":"Rust(Stadt)",
"pop":1942,
"lat":47.803858,
"lng":16.686788,
"FIELD6":"",
"FIELD7":"" }
},
{
"103": {
"id":103,
"name":"Eisenstadt-Umgebung",
"pop":41474,
"lat":47.85458,
"lng":16.576139,
"FIELD6":"",
"FIELD7":"" }
}
]
function foo(region)
{
for(i=0; i<region.length;i++)
{
document.getElementById("results").innerHTML = region[i]["101"]["name"] + " // " + region[i]["103"]["name"];
}
}
foo(region);
</script>
</body>
</html>
Вы можете изменить структуру 'regions'? Структура, какая она есть сейчас, не так значима ... С 'var regions = {" 101 ": {" name ": ...," pop ": ...}," 102 ": {" name " : ..., "pop" ...} 'Вы можете конденсировать' foo() 'to' document.getElementById ("results"). innerHTML = regions ["101"] ["name"] + "//" + регионов ["103"] ["name"]; ' – Andreas
oke спасибо вам приятное решение, если у вас есть данные в этой структуре! – Manuel
okey я получил это :) – Manuel