Как мне пройти через объект JSON, который содержит массивы? - PullRequest
1 голос
/ 22 июля 2010

Как бы я прошел через это правильно?

{names:['oscar','bill','brad'],ages:['20','25','18']}

Так что я бы в основном получил вывод:

names: oscar
ages: 20

names: bill
ages: 25

names: brad
ages: 18

Да, я знаю, что это цикл for ... in, но я просто не могу понять, как получить этот вывод.

Ответы [ 3 ]

4 голосов
/ 22 июля 2010

возможно

for (var i = 0, len = obj.names.length; i < len; ++i) {
  var name = obj.names[i];
  var age = obj.ages[i];
  // ... whatever
}

где obj - ваш JSON-объект

1 голос
/ 22 июля 2010

Просто простое предложение.Мне кажется, что нижеприведенная реализация была бы лучше для вас

{ people:[{name:'oscar',age:20},{...},{...}] } 

Чтобы пройти через это

var a = { people:[{name:'oscar',age:20}] };
var array = a.people
for(element in array){
 console.log(array[element].name + ',' + array[element].age);
}

, у нас есть наш главный объект в переменной a, а внутри у нас есть наш массив в людяхатрибут нашего объекта.Массив имеет объекты нашего лица внутри.Итак, первым человеком в нашем списке является a.people [0] .name, это помогает?так как вам нужно использовать замыкание с этим массивом, вы можете проверить это сообщение в блоге.http://yilmazhuseyin.wordpress.com/2010/07/19/closure-in-javascript-part-3/

0 голосов
/ 22 июля 2010
       var data = {names:['oscar','bill','brad'],ages:['20','25','18']}
        function loop()   {
           var arrNames = data.names;
           var ages = data.ages;

           var str = [];
           for(var i = 0, len = arrNames.length; i < len; i++)   {
              str.push("\nnames: " + arrNames[i]  + "\nages:" + ages[i]);
           }

           alert(str.join(""));
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...