在纯对象中循环嵌套对象

时间:2018-12-03 14:32:22

标签: javascript object nested for-in-loop

如何在不创建函数且不使用ECMASCRIPT新属性(如Object.entries等)的情况下遍历对象中的嵌套对象。包括不使用JSON。只是Vanilla JavaScript。而是使用纯.notation或方括号(我想了解它是如何工作的,而不仅仅是解决我的问题)。这是我的代码。

var obj = { name1:{fname:'jack',sname:'smith',age:31},
            name2:{fname:'john',sname:'dill',age:55}}

如何使用for in循环打印每个键和每个值

2 个答案:

答案 0 :(得分:1)

var obj = {
  name1: {
    fname: 'jack',
    sname: 'smith',
    age: 31
  },
  name2: {
    fname: 'john',
    sname: 'dill',
    age: 55
  }
}

for (let property in obj) {
  let innerObj = obj[property];
  console.log(`${property} : ${obj[property]}`)
  for (let innerProperty in innerObj) {
    console.log(`${innerProperty} : ${innerObj[innerProperty]}`)
  }
}

嗨,乔。 for..in循环的工作原理如下。创建循环:for (let property in obj),当您在其中时,可以访问对象的属性值,例如obj[property]。在此示例中,我创建了一个内部循环,因为您的外部对象的属性值也是对象。希望这可以帮助!尝试阅读for...in here

这里值得指出的是,您整理数据的方式并不理想。如果您在对象中没有name属性,而只使用一个数组,它将更加简单。然后您的数据将如下所示:

var array = [{ fname: 'jack', sname: 'smith', age: 31 },
{ fname: 'john', sname: 'dill', age: 55 }];

答案 1 :(得分:0)

如果我没弄错,是您想要的东西吗?

for(var property in obj) {
    for(var property2 in obj[property]) {
        console.log('key:' + property2 + '   ' + 'value:' + obj[property][property2]);
    }
}