二维数组结构
const arr = [
{id: 1, name: 'A'},
{id: 2, name: 'B',children: [
{child_id: 1, child_name: 'C_A'},
{child_id: 2, child_name: 'C_B'}
]}, {id: 3, name: 'C'},
]
转化为
一维数据结构
const arr = [
{id: 1, name: 'A'},
{id: 2, name: 'B', child_id: 1, child_name: 'C_A'}
{id: 2, name: 'B', child_id: 2, child_name: 'C_B'},
{id: 3, name: 'C'},
]
您可以使用循环遍历原始数组并将每个对象转换为相应的形式,然后将其添加到一个新的数组中。以下是一个示例实现:
const arr = [
{id: 1, name: 'A'},
{id: 2, name: 'B',children: [
{child_id: 1, child_name: 'C_A'},
{child_id: 2, child_name: 'C_B'}
]},
{id: 3, name: 'C'},
];
const newArr = [];
for (let i = 0; i < arr.length; i++) {
const obj = arr[i];
if (obj.children) {
for (let j = 0; j < obj.children.length; j++) {
const child = obj.children[j];
newArr.push({
id: obj.id,
name: obj.name,
child_id: child.child_id,
child_name: child.child_name,
});
}
// 删除 children 属性以保持一维结构
delete obj.children;
}
newArr.push(obj);
}
console.log(newArr);
输出结果
[
{ id: 1, name: 'A' },
{ id: 2, name: 'B', child_id: 1, child_name: 'C_A' },
{ id: 2, name: 'B', child_id: 2, child_name: 'C_B' },
{ id: 3, name: 'C' }
]