3 回答

TA貢獻1963條經(jīng)驗 獲得超6個贊
您可以使用 flatMap
let data = [{"foo": {"name":"foo-name"},"bar": {"name":"bar-name"}},{"baz": {"name":"baz-name"}}]
let final = data.flatMap(a => Object.entries(a).map(([k, v]) => ({
[k]: v
})))
console.log(final)

TA貢獻2051條經(jīng)驗 獲得超10個贊
一種選擇是reduce進入一個數(shù)組,迭代每個對象的條目并將它們推送到累加器:
const data = [
{
"foo": {"name":"foo-name"},
"bar": {"name":"bar-name"}
},
{
"baz": {"name":"baz-name"}
}
];
const output = data.reduce((a, obj) => {
Object.entries(obj).forEach(([key, val]) => {
a.push({ [key]: val });
});
return a;
}, []);
console.log(output);

TA貢獻2021條經(jīng)驗 獲得超8個贊
我會使用一個簡單for-of的Object.entries映射到對象:
const result = [];
for (const obj of data) {
result.push(
...Object.entries(obj).map(
([key, value]) => ({[key]: value})
)
);
}
現(xiàn)場示例:
const data = [
{
"foo": {"name":"foo-name"},
"bar": {"name":"bar-name"}
},
{
"baz": {"name":"baz-name"}
}
];
const result = [];
for (const obj of data) {
result.push(
...Object.entries(obj).map(
([key, value]) => ({[key]: value})
)
);
}
console.log(result);
添加回答
舉報