javascript - 如何合并JavaScript数组中的某些项目?

原文 标签 javascript arrays sorting ecmascript-6

假设您有以下数组:

const ab = ['a', 'a', 'b', 'b', 'b', 'a', 'b', 'b', 'a'];

您将如何更改此数组,以便将所有“b”项组合在一起,直到您单击另一个“a”。

因此,上述数组的结果如下所示:
['a', 'a', 'bbb', 'a', 'bb', 'a'];

我试图通过在与React应用程序中的模式匹配的单词周围包裹跨度标签来解决问题,但这本质上是我的问题。

我已经为此工作了很长时间,但是无法提出我满意的任何东西。

有任何想法吗?

干杯。

最佳答案

计算重复出现的次数,然后基于此结果:

 const result = [];
 let curr = array[0], count = 1;

 for(const el of array.slice(1).concat(undefined)) {
   if(el !== curr || el !== "b") {
     result.push(curr.repeat(count));
     curr = el, count = 1;
   } else count++;
 }

关于javascript - 如何合并JavaScript数组中的某些项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54812192/

相关文章:

javascript - 使用 ng-repeat 从集合中提取一些信息

javascript - 延迟返回以等待异步功能(beforeunload事件)

javascript - 如何在此jQuery代码中使用此

arrays - 如何在 Swift 中使用可选变量拆分多行字符串文字

javascript - JavaScript-按日期对对象数组或记录中的项目进行分组

javascript - HtmlUnit:HtmlPage 序列化异常

javascript - 使用另一个数组的对象键过滤一个对象

ruby-on-rails - Ruby On Rails 3 问题排序查询结果

c++ - 排序功能为大输入0提供浮点异常

java - 是否通过非传递比较器 "work"进行排序?