JavaScript concat没有按预期工作,关心详细说明?

kri*_*tev 1 javascript arrays for-loop concat object

所以,我有这个对象包含国家名称作为键,值是包含一些城市的数组.我想把所有城市都放在一个阵列中,没有国家.这是我如何去做,不明白为什么它不工作:

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
Run Code Online (Sandbox Code Playgroud)

如果我替换allCities.concat(cities[c])console.log(cities[c])我得到所有这样的数组:

['london']
['ibiza', 'malaga']
['hollywood']
Run Code Online (Sandbox Code Playgroud)

这就是我的挫折感来自哪里.知道为什么这不起作用吗?

Art*_*oev 13

根据以下文件Array.prototype.concat:

返回由此数组与其他数组和/或值连接组成的新数组.

这意味着它不会修改它所应用的对象.

改成:

allCities = allCities.concat(cities[c]);
Run Code Online (Sandbox Code Playgroud)