【问题标题】:How do I loop through a JSON object that contains arrays?如何遍历包含数组的 JSON 对象?
【发布时间】:2010-07-22 03:27:33
【问题描述】:

我将如何正确循环?

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

所以我基本上会得到输出:

names: oscar
ages: 20

names: bill
ages: 25

names: brad
ages: 18

是的,我知道它是一个 for...in 循环,但我就是不知道如何获得这个输出。

【问题讨论】:

    标签: javascript json loops


    【解决方案1】:

    也许

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

    其中“obj”是您的 JSON 对象

    【讨论】:

    • 是的,这似乎是正确的,Pointy。 Oscaar,顺便说一下,为什么要这样格式化你的 JSON?为什么不 { {name: 'Oscar', age: 24}, {name: 'Bill', age: 25} ...}
    • 这是一种使用 localStorage 的 DB JSON。我想存储“行和列”而不是对象集。我通常会按照你的方式做。
    【解决方案2】:

    只是一个简单的建议。在我看来,下面的实现对你来说会更好

    { 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 中有我们的主要对象,在我们的对象的 people 属性中我们有我们的数组。数组里面有我们的人员对象。所以我们列表中的第一个人是 a.people[0].name 这有帮助吗?由于您需要对这个数组使用闭包,您可以查看这篇博文。 http://yilmazhuseyin.wordpress.com/2010/07/19/closure-in-javascript-part-3/

    【讨论】:

    • 啊,有趣,我怎么看这个?
    【解决方案3】:
           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(""));
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      相关资源
      最近更新 更多