为什么对象不会推入一个数组?

Why the object won't push into one array?

有人可以帮忙解决如何将所有对象值放入一个数组吗?

  const countryObject = data.countryBorders

      for ( var i = 0; i < countryObject.length; i++ ) {

        let countries = []
        let country = countryObject[i].properties.name

        countries.push(country)

        console.log(contries)

打印

["Bahamas"]["Canada"]["Costa Rica"]["Cuba"]...

但我需要它在 countries 变量下的一个数组中打印,例如

["Bahamas", "Canada", "Costa Rica", "Cuba"]

问题在于初始化 countries 数组的位置。由于您在 for-loop 中拥有它,因此您正在为每次迭代创建一个新数组,导致先前的国家/地区丢失。

您应该在 for-loop 之前初始化 countries 变量,然后在 for-loop 之后记录它。

const countryObject = data.countryBorders;
const countries = [];

for ( var i = 0; i < countryObject.length; i++ ) {            
    let country = countryObject[i].properties.name;

    countries.push(country);
}

console.log(contries);

使用Array.map

会简单很多
const countries = data.countryBorders.map(country => country.properties.name);
console.log(countries);