SOURCE

console 命令行工具 X clear

                    
>
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>