我试图将JS对象转换为数组,但转换后的数组未定义。

我最初有JSON,但是根据我的阅读,它会自动解析为JS Object(当我尝试解析它时,我会在位置1的JSON中收到SyntaxError:Unexpected token o)。当我console.log(typeof cityList)时,我也得到了对象。

初始JSON如下所示:

    [
  {
    "id": 707860,
    "name": "Hurzuf",
    "country": "UA",
    "coord": {
      "lon": 34.283333,
      "lat": 44.549999
    }
  },
  {
    "id": 519188,
    "name": "Novinki",
    "country": "RU",
    "coord": {
      "lon": 37.666668,
      "lat": 55.683334
    }
  }
    ]


我这样导入JSON:import cityList from './city.list.json';

我使用以下代码进行转换:

const cityListArray = Object.values(cityList);


如果我console.log(cityListArray)我不确定。

我也尝试过:const cityListArray = Object.keys(cityList).map(i => cityList[i])但结果是相同的。

我不确定问题出在哪里。任何帮助,将不胜感激!

最佳答案

您不需要转换任何内容,因为JSON对象已经是一个数组。

您不应该使用typeof检查某物是否为数组,因为它会为数组返回"object"

const a = [];
typeof a; // "object"


您应该改用Array.isArray()方法。

10-04 23:31