数组算法问题求解

发布于 2022-09-07 08:17:49 字数 402 浏览 8 评论 0

遇到一个算法;类似 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);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

单调的奢华 2022-09-14 08:17:49

排序后 一遍循环就行

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])
}
痴情换悲伤 2022-09-14 08:17:49
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)
月竹挽风 2022-09-14 08:17:49
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()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文