【问题标题】:Why the object won't push into one array?为什么对象不会推入一个数组?
【发布时间】:2021-06-27 15:08:11
【问题描述】:

有人可以帮忙将所有对象值推入一个数组吗?

  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"]

【问题讨论】:

    标签: javascript arrays object push


    【解决方案1】:

    使用Array.map会简单得多

    const countries = data.countryBorders.map(country => country.properties.name);
    console.log(countries);
    

    【讨论】:

    • 希望你在这个过程中学到了一些东西@Coder_k
    【解决方案2】:

    问题在于您在哪里初始化 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-06
      • 2017-05-13
      • 1970-01-01
      • 2020-02-08
      • 2018-01-20
      • 2017-10-10
      相关资源
      最近更新 更多