Javascript 从嵌套对象检索数据

Javascript 从嵌套对象检索数据,javascript,Javascript,我只有这个对象示例: { id: 301 payload: { 1: { house_no: 1234, city: London }, 2: { house_no: 0000 city: Paris } } } 我只需要为1和2提取房屋号和城市号。 我曾经尝试过这样快速浏览:*传递给循环的地址就是上面的对象 let item = []; for(let x in address){ item.push(item[x]); } console.lo

我只有这个对象示例:

{
id: 301
 payload: {
 1: {
  house_no: 1234,
  city: London
  },
 2: {
  house_no: 0000
  city: Paris
  }
 }
}
我只需要为1和2提取
房屋号和城市号。
我曾经尝试过这样快速浏览:*传递给循环的地址就是上面的对象

let item = [];
for(let x in address){
      item.push(item[x]);
}

console.log('Address', item.city);
这给了我一个包含未定义元素的数组:

[
0: undefined
1: undefined
]
你们能帮我检索每个1,2:
house\u no和city所需的数据吗

Object.values(address.payload).map(({ house_no, city }) => ({ house_no, city }));
这将遍历
address.payload
中的每个值,并返回带有
house\u no
city
的对象数组

const地址={
id:301,
有效载荷:{
1: {
房号:1234,
城市:“伦敦”
},
2: {
房号:0000,
城市:“巴黎”
}
}
};
const result=Object.values(address.payload).map({house_no,city})=>({house_no,city}));

控制台日志(结果)您可以直接访问它,如下所示

const {1: obj1, 2: obj2} = address.payload;
在这里,javascript将分解有效负载,并将对象1分配到1,将对象2分配到2。您提供的对象中缺少一些逗号和引号。因此,我也在下面补充了这一点。现在,obj1和obj2将有1和2个对象,您可以从中轻松提取所需的数据

let address = {
    id: 301,
     payload: {
     1: {
      house_no: 1234,
      city: "London"
      },
     2: {
      house_no: 0000,
      city: "Paris"
      }
     }
    };

const {1: obj1, 2: obj2} = address.payload;
console.log(obj1);
console.log(obj1.city);
console.log(obj1.house_no);

您可以直接访问对象属性,而无需循环:

<script>
  var obj = {
    id: 301,
    payload: {
    1: {
      house_no: 1234,
      city: "London"
      },
    2: {
      house_no: 0000,
      city: "Paris"
      }
    }
  }
  var address1 = obj.payload[1].house_no + " " + obj.payload[1].city;
  var address2 = obj.payload[2].house_no + " " + obj.payload[2].city;
</script>

var obj={
id:301,
有效载荷:{
1: {
房号:1234,
城市:“伦敦”
},
2: {
房号:0000,
城市:“巴黎”
}
}
}
var address1=obj.payload[1]。房屋号+“”+obj.payload[1]。城市;
var address2=obj.payload[2]。房屋号+“”+obj.payload[2]。城市;

为什么要将
项[x]
推送到
数组中?
项。推(项[x])?当然,您将得到
未定义的
。不要推送
item[x]
。您的对象中缺少几个逗号。嘿,我非常喜欢这个解决方案,我添加到的原因是:让item=[];是因为我想在html中映射它。我对Object.values返回数组的理解是正确的,这就是为什么你可以通过map来跟踪它…?是的
Object.values
返回一个数组,这样你就可以调用
.map()
,它反过来也会返回一个数组。看见