所以,我有这个包含国家/地区名称作为键的对象,值是包含一些城市的数组。我想把所有城市都放在一个数组中,没有国家。以下是我的处理方式,不明白为什么它不起作用:
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
的文档:
Returns a new array comprised of this array joined with other array(s) and/or value(s).
这意味着它不会修改它所应用的对象。
更改为:
allCities = allCities.concat(cities[c]);
关于JavaScript concat 没有按预期工作,需要详细说明吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20079789/