2016-12-25 2 views
-2

У меня есть массив, из которого я не могу получить значение свойства. Например:Получение свойства в массиве

{ 
    "data": { 
     "1": { 
      "id": 1, 
      } 
     } 
    "data": { 
     "2": { 
      "id": 2, 
      } 
     } 
} 

Количество элементов в массиве является динамическим, так что я не использую фиксированное число при попытке получить «идентификатор». Я использую функцию цикла, такую ​​как for(i=0;i<array.data.length;i++), которая затем перебирает числа до тех пор, пока количество элементов не будет удовлетворено при решении проблемы с динамическим числом элементов. Но проблема заключается в том, что я пытаюсь вызвать "id", используя array.data[i].id, для вызова значений «id». Все, что я получаю, это TypeError: Cannot read property "id" of undefined

Так что мой вопрос: как мне получить значение «id»?

PS: Извините, если мой формат странный или неряшливый. Это мой первый пост для stackoverflow.

+1

Это не массив, это объект. – Dekel

+1

показать вашу фактическую и допустимую структуру ввода – RomanPerekhrest

+1

данные json выглядят не совсем отформатированными: 5 открываются фигурные скобки и 2 закрывающие –

ответ

-1

Не можете ли вы просто использовать var key in array?

Это как так:

for(var key in array){ 
    var myData = array[key]; 

    console.log(myData.id); // should return your data object 
} 

- в вашем случае, возможно, потребуется дважды один

//access the array with the sub-arrays: 
for(var key in array){ 
    var myData = array[key]; 

    //access the data sub-array 
    for(var dataKey in myData){ 
    var id = myData[dataKey].id 
    }  

} 
+0

Это, похоже, исправить мою проблему, спасибо , – L3gionOfDooM

0

Ваш код очень, очень сломана. Прежде всего, давайте решим ваш вопрос с работой JSON.

[ 
    { 
     "1": { 
      "id": 1 
     } 
     }, 
    { 
     "2": { 
      "id": 2 
      } 
     } 
] 

Видя, как это бесполезно, причудливо сделано данных, вы могли бы найти идентификатор определенного элемента, выполнив:

arr[n][n+1] 

Я до сих пор понятия не имею, что вы спрашиваете, что вы пытаетесь делать или как это полезно.

Смежные вопросы