如何在不创建函数且不使用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循环打印每个键和每个值
答案 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]);
}
}