遇到一个算法;类似 var a= [1,2,3,4,4 ,5,5,5] 怎么处理成二位数组[[1],[2],[4,4],[5,5,5]]我自己写的:额。。。循环两次,不太好var a= [1,2,3,4,4,5,5,5]; var obj = {}; var arr = []; for(var i = 0; i<a.length; i++) { if(!obj[a[i]]){ obj[a[i]] = []; } obj[a[i]].push(a[i]); } for(var i in obj){ arr.push(obj[i]); } console.log(arr);
3 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
排序后 一遍循环就行
let a= [1,2,3,4,4,5,5,5];
let a2 = []
for(let i=0;i<a.length;i++){
if(i==0||a[i]!=a[i-1]){
a2.push([])
}
a2[a2.length-1].push(a[i])
}
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
var arr = [1,2,3,4,4 ,5,5,5]
var ret = []
var prev = [arr[0]]
for (let i = 1; i < arr.length; i++) {
if (arr[i] === prev[0]) {
prev.push(arr[i])
} else {
ret.push(prev)
prev = [arr[i]]
}
}
ret.push(prev)
慕沐林林
TA贡献2016条经验 获得超9个赞
test = [1,2,3,4,4,5,5,5]
res = dict()
for i in test:
if not res.has_key(i):
res[i] = []
res[i].append(i)
print res.values()
添加回答
举报
0/150
提交
取消