尝试将以下对象(从 API 响应中获取)转换为数组对象。
const oldObj = {
Georgia : {
notes: "lorem ipsum",
lat: "32.1656",
long: "82.9001"
},
Alabama : {
notes: "lorem ipsum",
lat: "32.3182",
long: "86.9023"
}
}
Run Code Online (Sandbox Code Playgroud)
我的预期如下:
const desireArray = [
{
name: "Georgia",
notes: "lorem ipsum",
lat: "32.1656",
long: "82.9001"
},
{
name: "Alabama",
notes: "lorem ipsum",
lat: "32.3182",
long: "86.9023"
}
];
Run Code Online (Sandbox Code Playgroud)
尝试使用 forEach 但是,我认为这不是方法,似乎向我返回了错误。
oldObj.forEach((el, i) => {
console.log(el);
});
Run Code Online (Sandbox Code Playgroud)
类型错误:oldObj.forEach 不是函数
有什么帮助吗?
forEach是数组的方法,同时你oldObj是对象
首先你必须将它转换为数组,这里我们可以做的是将对象转换为键值对数组
使用 withmap可以使代码更短
const oldObj = {
Georgia: {
notes: "lorem ipsum",
lat: "32.1656",
long: "82.9001",
},
Alabama: {
notes: "lorem ipsum",
lat: "32.3182",
long: "86.9023",
},
}
const res = Object.entries(oldObj).map(([name, obj]) => ({ name, ...obj }))
console.log(res)Run Code Online (Sandbox Code Playgroud)
参考