为了账号安全,请及时绑定邮箱和手机立即绑定

数组算法问题求解

数组算法问题求解

慕码人2483693 2019-03-20 18:15:26
遇到一个算法;类似 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])

}


查看完整回答
反对 回复 2019-04-02
?
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)


查看完整回答
反对 回复 2019-04-02
?
慕沐林林

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


查看完整回答
反对 回复 2019-04-02
  • 3 回答
  • 0 关注
  • 420 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信