【发布时间】:2021-11-06 06:33:16
【问题描述】:
我需要将嵌套对象展平为对象数组。到目前为止,这就是我想出的。但它不能正常工作。目前我正在检查当前元素是否为对象,如果它是我正在递归调用相同函数的对象。
作为输出我需要这个。
[
{title: 'Foo', value: 111},
{title: 'Bar', value: 222},
...
]
var data = {
1: {
title: "Foo",
value: 111,
children: {
2: {
title: "Bar",
value: 222,
},
},
},
3: {
title: "Baz",
value: 333,
children: {
4: {
title: "Qux",
value: 444,
children: {
5: {
title: "Quux",
value: 555,
},
},
},
},
},
};
const finalArrayOfObjects = [];
const flattenObject = (obj) => {
const flattened = {};
Object.keys(obj).forEach((key) => {
if (typeof obj[key] === "object" && obj[key] !== null) {
flattenObject(obj[key]);
} else {
flattened[key] = obj[key];
}
finalArrayOfObjects.push(flattened);
console.log(flattened);
});
};
【问题讨论】:
标签: javascript