我试图将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])
但结果是一样的。
我不确定问题出在哪里。任何帮助将不胜感激!
答案 0 :(得分:1)
您不需要转换任何内容,因为JSON对象已经是一个数组。
您不应该检查某些内容是否为typeof
的数组,因为它会为数组返回"object"
。
const a = [];
typeof a; // "object"
您应该使用Array.isArray()
方法。