// 将数组arr改成arr2树结构形式
// arr和arr2为简写,就是为了记录一下,明白就可
let arr = [
{ standardId: 1, standardItemId: '1-111', standardName: 'AAA', standardCode: 'CODE-GB10' },
{ standardId: 2, standardItemId: '2-111', standardName: 'B' },
{ standardId: 2, standardItemId: '2-222', standardName: 'B'}
]
let arr2 = [
{
standardId: 1,
standardName: 'AAA'
children: [
{
standardId: 1,
standardItemId: '1-111',
standardName: 'AAA',
standardCode: 'CODE-GB10'
}
]
},
{
standardId: 2,
standardName: 'B',
children: [
{ standardId: 2, standardItemId: '2-111' },
{ standardId: 2, standardItemId: '2-222' }
]
}
]
1.数组转树
toTree(arr) {
if (!Array.isArray(arr)) return [];
if (arr.length == 0) return [];
const map = {};
const result = [];
for (const item of arr) {
const { standardId, standardItemId, standardName, standardCode } = item;
if (!map[standardId]) {
map[standardId] = {
standardId,
standardName,
standardCode,
children: []
};
result.push(map[standardId]);
}
// map[standardId].children.push({ standardId, standardItemId, standardName, standardCode });
map[standardId].children.push({ ...item });
}
return result;
}
2.树转数组:
// 树转数组
let arr = [];
arr2.forEach(item => {
item.children.forEach(e => {
arr.push({
standardId: e.standardId,
standardItemId: e.standardItemId
})
});
});
3.删除arr2中的children属性
const newArray = arr2.filter(item => !item.hasOwnProperty('children'));