首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript:遍历对象

Javascript:遍历对象
EN

Stack Overflow用户
提问于 2011-06-11 01:51:07
回答 2查看 202关注 0票数 0

我正在遍历这个对象:

代码语言:javascript
复制
var object = { 
   first : {
      child1 : 'test1',
      child2 : 'test2'
   },

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

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

有了这个:

代码语言:javascript
复制
for(var attribute in object){
    alert(attribute + " : " + object[attribute]);
}

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-11 01:52:55

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

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

代码语言: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);
}
票数 4
EN

Stack Overflow用户

发布于 2011-06-11 01:54:01

迭代没有问题,对象有问题。名为first的第二个属性将替换第一个first,并将其擦除。

谁先上场?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6310214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档