在JS中的数组中将数组中的相同值分组 [英] Group same values in an array within an array in JS

查看:114
本文介绍了在JS中的数组中将数组中的相同值分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将数组中的相同数字分组?

How can I group the same numbers in an array within an array?

我具有以下数字数组:

var arr = [1,1,1,1,2,2,3,3,3,4,5,5,6];

我的输出应该是

[[1,1,1,1],[2,2],[3,3,3],4,[5,5],6]


推荐答案

您可以缩小数组并检查前任值是否相同,如果不相同数组或值,取决于下一个元素。

You could reduce the array and check if the predecessor has the same value and if not take either an array or the value, depending of the next element.

var array = [1, 1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5, 6],
    grouped = array.reduce((r, v, i, a) => {
        if (v === a[i - 1]) {
            r[r.length - 1].push(v);
        } else {
            r.push(v === a[i + 1] ? [v] : v);
        }
        return r;
    }, []);
    
console.log(grouped);

这篇关于在JS中的数组中将数组中的相同值分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆