- let data = [
- { id: 1, name: "123", pid: 1 },
- { id: 2, name: "123", pid: 1 },
- { id: 3, name: "123", pid: 1 },
- { id: 4, name: "123", pid: 2 },
- { id: 5, name: "123", pid: 1 },
- { id: 6, name: "123", pid: 2 },
- { id: 7, name: "123", pid: 1 },
- { id: 8, name: "123", pid: 2 },
- { id: 9, name: "123", pid: 1 },
- ]
- let result = []; // 存储最终结果的数组
-
- data.forEach(item => {
- // 获取到元素父级
- let parent = data.find(element => element.id === item.pid);
-
- let index = result.findIndex(i => i.id === parent.id);
- // 不存在就将父级 添加 进 result数组中
- if (index === -1) {
- result.push(parent);
- }
-
- // 判断当前元素是否和父级一致,一致就没必要再次添加
- if(item.id != parent.id){
- if (!parent.children) {
- parent.children = [];
- }
- parent.children.push(item);
- }
- });
-
- console.log(result);