console
const list = [
{ id: 1, name: '小明', type: '分类', y: 10 },
{ id: 2, name: '大明', type: '分钱', y: 15 },
{ id: 3, name: '中明', type: '分兵', y: 20 },
{ id: 4, name: '小明', type: '分分', y: 30 },
{ id: 5, name: '雷明', type: '分兵', y: 40 },
{ id: 6, name: '小明', type: '分兵', y: 90 },
{ id: 7, name: '出明', type: '分钱', y: 150 },
{ id: 8, name: '中明', type: '分钱', y: 160 },
{ id: 9, name: '出明', type: '分分钱', y: 400 },
{ id: 10, name: '雷明', type: '分分钱', y: 500 },
];
/**
* 这个方法的前提是list数组是根据y属性`按顺序排列的`, 如果不是先进行排序操作
*/
function group(data) {
const newArr = []
let count = 0
data.reduce((acc, val) => {
if(Math.abs(val.y - acc) > 20) {
count++
}
if(!newArr[count]) {newArr[count] = []}
newArr[count].push(val)
return val.y
}, 0)
return newArr
}
console.log(group(list))
<html>
</html>