代码
const arr = [
{
id: 1,
name: '张三',
arr: [{ id: 2, name: '张涨' }]
},
{
id: 2,
name: '张三',
arr: [{ id: 7, name: '张涨' }]
},
{
id: 3,
name: '张三'
// 注意:这里没有 arr 属性
}
];
let paths = [];
arr.forEach(item => {
// 首先构建基本的对象
let base = {
value: item.id,
label: item.name,
children: []
};
// 检查 arr 属性是否存在且不为空数组
if (item.arr && item.arr.length > 0) {
// 映射 arr 中的每个元素到 children 数组
base.children = item.arr.map(i => ({
value: i.id, // 注意这里应该是 i.id 而不是 item.id
label: i.name
}));
}
// 将构建好的对象添加到 paths 数组中
paths.push(base);
});
console.log(paths);
效果图