在Javascript数组中将顺序重复的值分组 [英] Group sequential repeated values in Javascript Array

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

问题描述

我有这个数组:

var arr = ['a','a','b','b','b','c','d','d','a','a','a'];

我希望这个输出:

[
  ['a','a'],
  ['b','b','b'],
  ['c'],
  ['d','d'],
  ['a','a','a'],
]

Obs .:请注意,我不想将所有重复值分组.只有顺序重复的值.

Obs.: Notice that I dont want group all the repeat values. Only the sequential repeated values.

有人可以帮助我吗?

推荐答案

您可以像这样减少数组:

You can reduce your array like this:

var arr = ['a','a','b','b','b','c','d','d','a','a','a'];

var result = arr.reduce(function(r, i) {
    if (typeof r.last === 'undefined' || r.last !== i) {
        r.last = i;
        r.arr.push([]);
    }
    r.arr[r.arr.length - 1].push(i);
    return r;
}, {arr: []}).arr;

console.log(result);

请参见 Array.prototype.reduce().

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

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