Object to Array返回undefined

时间:2018-06-10 20:06:59

标签: javascript arrays object

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

我最初有JSON,但是根据我的阅读,它会被自动解析为JS对象(当我尝试解析它时,我得到了SyntaxError:在位置1的JSON中出现了意外的令牌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])但结果是一样的。

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

1 个答案:

答案 0 :(得分:1)

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

您不应该检查某些内容是否为typeof的数组,因为它会为数组返回"object"

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

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