因此,我将此对象包含国家/地区名称作为键,值为包含某些城市的数组。我想把所有城市都放在一个阵列中,没有国家。这是我如何去做,不明白为什么它不起作用:
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']
这就是我的挫败感来自于此。知道为什么这不起作用吗?
答案 0 :(得分:13)
根据Array.prototype.concat
的文档:
返回一个由此数组组成的新数组,该数组与其他数组连接 和/或价值。
这意味着它不会修改它所应用的对象。
更改为:
allCities = allCities.concat(cities[c]);