我有这样的对象:
const testik = {
0: {
name: "(REJ) - Rejected",
value: 'rejected'
},
1: {
name: "(VISA) - Received visa",
value: 'received_visa'
}
}我想要像这样的最终对象数组:
const crossingStatusItems = [
{
id: '0',
name: "(REJ) - Rejected",
value: 'rejected'
},
{
id: '1',
name: "(VISA) - Received visa",
value: 'received_visa'
}]谢谢你的帮助!
发布于 2022-09-20 16:34:33
Object.entries(testik)将返回对象中键值对的数组。它们可以很容易地被映射到一个新对象数组中,这需要借助spread操作符:
Object.entries(testik).map(([id, v]) => ({...v, id}))
const testik = {
0: {
name: "(REJ) - Rejected",
value: 'rejected'
},
1: {
name: "(VISA) - Received visa",
value: 'received_visa'
}
}
const mapped = Object.entries(testik).map(([id, v]) => ({ ...v,
id
}))
console.log(mapped)
发布于 2022-09-20 16:31:52
尝尝这个
function toArray(obj) {
return Object.keys(obj).map(function (key) {
return {
id: `${key}`,
...obj[key],
};
});
}
const testik = {
0: {
name: "(REJ) - Rejected",
value: "rejected",
},
1: {
name: "(VISA) - Received visa",
value: "received_visa",
},
};
const crossingStatusItems = toArray(testik);
console.log(crossingStatusItems);发布于 2022-09-20 16:40:42
其中一种方法是使用Object.entries方法,如下所示:
function toArray(obj) {
return Object.entries(obj).map(function ([id, value]) {
return {
...value,
id: id,
};
});
}或者更短的版本:
function toArray(obj) {
return Object.entries(obj).map(([id, value]) => ({ ...value, id }));
}https://stackoverflow.com/questions/73789852
复制相似问题