简体   繁体   English

如何从 object (JavaScript) 中的数组中获取数据

[英]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#valuesArray#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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM