因此,我有一个包含国家/地区名称作为键的对象,值是带有一些城市的数组。我想把所有城市都排成一排,没有国家。这是我的处理方法,无法理解为什么它不起作用:
var cities = {
"United Kingdom": ['london'],
"Spain": ['ibiza', 'malaga'],
"USA": ['hollywood']
}
var allCities = [];
for (c in cities) {
allCities.concat(cities[c]);
}
console.log(allCities); //gives empty array
如果将
allCities.concat(cities[c])
替换为console.log(cities[c])
,我将得到所有这样的数组:['london']
['ibiza', 'malaga']
['hollywood']
这就是我沮丧的源头。知道为什么这行不通吗?
最佳答案
根据Array.prototype.concat
的文档:
返回一个包含此数组和其他数组的新数组
和/或值。
这意味着它不会修改应用到的对象。
改成:
allCities = allCities.concat(cities[c]);