我试图将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()
方法。