Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在此数据结构中选择这些成员变量_Javascript_Typescript - Fatal编程技术网

Javascript 如何在此数据结构中选择这些成员变量

Javascript 如何在此数据结构中选择这些成员变量,javascript,typescript,Javascript,Typescript,我的任务是从这些国家取回城市。然而,我不确定如何获得它们?获取城市名称的最简单方法是: 对于美国,它将是:纽约,旧金山 我试过这样做:cityData[0]。children[0],但这只会给我对象 如何针对每个国家的城市 var cityData = [ {country: "USA", children:[ {"NYC": ["60%", "70%", "80%"]}, {"SFO": ["40%", "30%", "20%"]} ]},

我的任务是从这些国家取回城市。然而,我不确定如何获得它们?获取城市名称的最简单方法是:

对于美国,它将是:纽约,旧金山

我试过这样做:cityData[0]。children[0],但这只会给我对象

如何针对每个国家的城市

var cityData = [
    {country: "USA", children:[
        {"NYC": ["60%", "70%", "80%"]}, 
        {"SFO": ["40%", "30%", "20%"]}
    ]},
    {country: "Mexico", children:[
        {"Mexico City": ["80%", "80%", "80%"]}, 
        {"Cancun": ["20%", "20%", "20%"]}
    ]},
    {country: "Canada", children:[
        {"Toronto": ["50%", "60%", "60%"]}, 
        {"Vancouver": ["50%", "40%", "40%"]}
    ]
}];
是否有其他方法可以访问城市名称而不是执行以下操作:cityData[0]。children['NYC']和cityData[0]。children['SFO']

我需要两者,但如果有意义的话,需要一个选择器

如果有帮助,请随意将数据结构更改为更详细的数据结构

您可以使用Object.keys访问正在查看的对象的键,它将返回一个键数组。可以使用地图获取每个对象上的关键点,以返回城市数组。这将返回一系列城市

cityData[0].children.map(itm => Object.keys(itm)[0])
var cityData=[ {国家:美国,儿童:[ {NYC:[60%,70%,80%]}, {SFO:[40%,30%,20%] ]}, {国家:墨西哥,儿童:[ {墨西哥城:[80%,80%,80%]}, {坎昆:[20%,20%,20%] ]}, {国家:加拿大,儿童:[ {多伦多:[50%,60%,60%]}, {温哥华:[50%,40%,40%] ] }]; console.logcityData[0].children.mapitm=>Object.keysitm[0]请尝试此操作

   for(let key in cityData[0].children[0]) {
       console.log(key);
    }

如果您先预处理子数组(即对象),则可以使用您建议的确切语法

var cityData=[ {国家:美国,儿童:[ {NYC:[60%,70%,80%]}, {SFO:[40%,30%,20%] ]}, {国家:墨西哥,儿童:[ {墨西哥城:[80%,80%,80%]}, {坎昆:[20%,20%,20%] ]}, {国家:加拿大,儿童:[ {多伦多:[50%,60%,60%]}, {温哥华:[50%,40%,40%] ] }]; cityData.forEachcountry=>{ 让childrenObj={} country.children.forEachcity=>{ 让key=Object.keyscity[0] childrenObj[key]=key } country.children=childrenObj }
console.logcityData[0]。children['NYC']选择器需要什么样的外观?@Joel-轻松更改。编辑。奇怪的是,如果你用纽约市作为索引的话,它已经有点像纽约市了。