let arr = [{
title: '1',
name: 'name1'
}, {
title: '2',
name: 'age1'
}, {
title: '1',
name: 'name2'
}, {
title: '2',
name: 'age2'
}, {
title: '1',
name: 'name3'
}]
// 1.先循环该数组,
// 2.定义一个新的数组,在循环体里循环该新数组
// 3.判断该数组的值在新数组当中是否存在,如果存在就直接再新数组当中push该数据
// 4.用count标识,循环完该新数组后,判断如果count == 0表示该数组的title在新数组不存在,所以需要在数组推进去,
// 5.并且将该项推到当前项的list当中
function fn(arr) {
let newArr = []
arr.forEach((ele) => {
let count = 0;
newArr.forEach(eles => {
if (ele.title == eles.title) {
eles.list = eles.list || [];
eles.list.push(ele);
count++;
}
}
)
if (count == 0) {
newArr.push({
title: ele.title
});
newArr.forEach(ele1 => {
if (ele1.title == ele.title) {
ele1.list = ele1.list || []
ele1.list.push(ele);
}
})
}
})
return newArr
}
console.log(fn(arr))
