var arr =[{index: '1', title: '第1层'},
{index: '1-1', title: '第一层第1个'},
{index: '1-2', title: '第一层第2个'},
{index: '2', title: '第2层'}];
var arr2=[];
arr.forEach((item,i)=>{
// console.log(item.index.indexOf('-')!=-1)
if(item.index.indexOf('-')!=-1){
// console.log(item.index.split('-')[0])
arr2.forEach((val,j)=>{
if(!val.children){
val.children = [];
}
if(item.index.split('-')[0]==val.index){
console.log(val)
val.children.push(item)
}
})
}else{
arr2.push(item);
// console.log(arr2)
}
})
补充:如果数据排序是乱的,需要处理一下
var arr =[
{index: '1-1', title: '第一层第1个'},
{index: '1', title: '第1层'},
{index: '2-2', title: '第2层第2个'},
{index: '1-2', title: '第一层第2个'},
{index: '2', title: '第2层'},
{index: '2-1', title: '第2层第1个'},
{index: '3-2', title: '第3层第2个'},
{index: '3', title: '第3层'},
{index: '3-1', title: '第3层第1个'},
{index: '1-3', title: '第1层第3个'},
];
// 先过滤一下是父级的就是想要的结构
var arr1 = arr.filter((item) => {
return item.index.indexOf('-') == -1
})
arr1.forEach((val)=>{
val.children=[];
arr.forEach((item) => {
if (item.index.indexOf('-') != -1&&item.index.split('-')[0] == val.index) {
val.children.push(item)
}
})
})
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…