首先我们要考虑到,一组数据中,数组格式是有那些可能
Arry= [1,1,2,3,4,5,6,7,8,9,10,10,11,11,11,12]
根据我们的业务来看,我们需要把这些排列成
ArryB [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
那我们首先需要将Arry进行简单排序
利用数组Arry.sort()
排序完了之后,我们需要做的是去重
这里利用Map结构,key值唯一
let arr=[ ]
let map= new Map()
for(let item of Arry){
if(!map.has(item.order)){
map.set(item.order,item)
}else{
arr.push(item)
}
}
这里我们就拿到了所有相同的数据
[
[{order:8},{order:8}, {order:8}, {order:8}, ],
[{order:9},{order:9}, {order:9}, {order:9}, ]
……..
]
然后根据数组的长度,递曾,然后放入数组,递归继续操作,直到没有相同的数组。
详情看代码。