[英]How to get data from an array inside an object (JavaScript)
I'm trying get data from array so that look like this:我正在尝试从数组中获取数据,如下所示:
[Rome, Milan, Barselona, Madrid]
[罗马、米兰、巴塞罗那、马德里]
and my brain seems like go to blackout... How can i do this?我的大脑好像 go 停电了……我该怎么做?
const countries = {
italy: {
id: 1,
cities: ["Rome", "Milan"],
},
spain: {
id: 2,
cities: ["Barselona", "Madrid"],
}
};
function getCitiesDates(data) {
}
Using Object#values
and Array#flatMap
:使用
Object#values
和Array#flatMap
:
function getCitiesDates(data) { return Object.values(data).flatMap(({ cities = [] }) => cities); } const countries = { italy: { id: 1, cities: ["Rome", "Milan"] }, spain: { id: 2, cities: ["Barselona", "Madrid"] } }; console.log( getCitiesDates(countries) );
You can get it in one line with Object.keys(data).flatMap(c => data[c].cities);
您可以使用
Object.keys(data).flatMap(c => data[c].cities);
const countries = { italy: { id: 1, cities: ["Rome", "Milan"], }, spain: { id: 2, cities: ["Barselona", "Madrid"], } }; function getCitiesDates(data) { return Object.keys(data).flatMap(c => data[c].cities); } console.log(getCitiesDates(countries))
One way to solve it could be to use Object.keys(), loop the Keys and then map the cities.解决它的一种方法是使用 Object.keys(),循环键,然后循环 map 城市。
Something like this:像这样的东西:
const keys = Object.Keys(countries);
const cities = keys.flatMap(key => conutries[key].cities)
console.log(cities) // [Rome, Milan, Barselona, Madrid]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.