繁体   English   中英

Javascript:遍历对象

[英]Javascript: Iterate through objects

我正在遍历这个 object:

var object = { 
   first : {
      child1 : 'test1',
      child2 : 'test2'
   },

    second : {
       child1 : 'test3',
       child2 : 'test4'
    },

   first : {
      child1 : 'test5',
      child2 : 'test6!'
   }
};

有了这个:

for(var attribute in object){
    alert(attribute + " : " + object[attribute]);
}

首先,它似乎有效,但它只迭代具有唯一名称的子对象,因此第一个 object 被跳过: first

那么迭代整个 object 的正确解决方案是什么?

JavaScript 对象是关联映射,不能有多个具有相同键(名称)的值。 您的数据不能具有这种结构。

另一种选择可能是键值对数组。

var object = [
   ["first", {
      child1 : 'test1',
      child2 : 'test2'
   }],
   ["second", {
       child1 : 'test3',
       child2 : 'test4'
   }],
   ["first", {
      child1 : 'test5',
      child2 : 'test6!'
   }]
];

var i, attribute, value;
for (i = 0; i < object.length; i++) {
    attribute = object[i][0];
    value = object[i][1];
    alert("" + attribute + " = " + value);
}

迭代没有问题,object 有问题。 名为first的第二个属性替换了第一个first ,将其删除。

谁先上?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM