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

javascript使用for循环打印嵌套对象?,javascript,object,nested,Javascript,Object,Nested,如何打印person对象中的所有person 例如,我希望我的输出是这样的 无名氏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对象中的所有person

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

无名氏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;
您可以执行映射/连接:

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

  return [p.fname, p.lname, p.age].join(' ');
}).join(' ');
控制台中的输出:

如果您想在它们之间使用换行符元素(

),只需连接一个

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(' ');
}
document.getElementById(“demo”).innerHTML=Object.keys(person)
.map(组合属性)
.加入(“
”); 函数组合所有属性(k){ var p=个人[k]; 返回[p.fname,p.lname,p.age].join(“”); }
您可以进行映射/加入:

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

  return [p.fname, p.lname, p.age].join(' ');
}).join(' ');
控制台中的输出:

如果您想在它们之间使用换行符元素(

),只需连接一个

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(' ');
}
document.getElementById(“demo”).innerHTML=Object.keys(person)
.map(组合属性)
.加入(“
”); 函数组合所有属性(k){ var p=个人[k]; 返回[p.fname,p.lname,p.age].join(“”); }
您可以将Array.prototype.reduce与Object.keys结合使用:

var-person={
p1:{fname:“John”,lname:“Doe”,年龄:25},
p2:{fname:“Paul”,lname:“Vosper”,年龄:23}
};
document.write(Object.keys(person).reduce(函数s,p,i){
var o=人[p];
返回s+(i>0?“
”:“”)+o.fname+“”+o.lname+“”+o.age }, '') );您可以将Array.prototype.reduce与Object.keys结合使用:

var-person={
p1:{fname:“John”,lname:“Doe”,年龄:25},
p2:{fname:“Paul”,lname:“Vosper”,年龄:23}
};
document.write(Object.keys(person).reduce(函数s,p,i){
var o=人[p];
返回s+(i>0?“
”:“”)+o.fname+“”+o.lname+“”+o.age }, '')
);map
方法的回调。所以唯一的方法是编写一个单独的函数来合并并打印它?你不能在一个对象中迭代一个对象并打印?@Mebighobo,你可以迭代并打印,但我建议的方法是一种语义编程范式(你试图实现的算法基本上是一种映射/连接,JavaScript提供了现成的方法)。它不是一个“单独的”函数,而是对
map
方法的回调。