javascript 使用 for 循环打印嵌套对象?

javascript print nested object using for loop?

如何打印出人物对象中的所有人物?

例如我希望我的输出是这样的。

李四 25 岁

保罗·沃斯珀 23

 var txt = "";
 var person = {
            p1: {fname:"John", lname:"Doe", age:25},
            p2: {fname:"Paul", lname:"Vosper", age:23}
           }; 
  var x;
  for (x in person) 
  {
    txt += person[x] + " ";
  }
  document.getElementById("demo").innerHTML = txt;

你可以做一个 map/join:

var txt = Object.keys(person).map(function(k) {
  var p = person[k];

  return [p.fname, p.lname, p.age].join(' ');
}).join(' ');

控制台输出:

如果你想在它们之间有一个换行符元素(<br>),只需加入 <br>:

document.getElementById("demo").innerHTML = Object.keys(person)
                                            .map(combineAllProperties)
                                            .join('<br>');

function combineAllProperties(k) {
  var p = person[k];

  return [p.fname, p.lname, p.age].join(' ');
}

您可以将 Array.prototype.reduceObject.keys:

结合使用

var person = {
  p1: {fname:"John", lname:"Doe", age:25},
  p2: {fname:"Paul", lname:"Vosper", age:23}
};

document.write(Object.keys(person).reduce(function(s, p, i) {
  var o = person[p];
  return s + (i>0?'<br>':'') + o.fname + ' ' + o.lname + ' ' + o.age
  }, '')
);