JavaScript,组合数组中的匹配元素

标签 javascript arrays

var binary = [1,0,0,1,1,1,0,0,1,0];

我有一个函数可以生成随机的位数组。我想组合匹配的元素并返回一个数组,说明有多少个元素被重复。上面给出的输出 = [1,2,3,2,1,1]。

JavaScript 中是否有任何功能可以让我做到这一点?我尝试过搜索,但不太确定如何描述我想要的东西。谢谢。

最佳答案

您可以使用reduce()方法并将最后一个元素存储在一个变量中。

var binary = [1, 0, 0, 1, 1, 1, 0, 0, 1, 0];
let last = null;

var result = binary.reduce((r, e) => {
  if (last == null || last != e) r.push(1);
  else r[r.length - 1]++;
  last = e;
  return r;
}, [])

console.log(result)

关于JavaScript,组合数组中的匹配元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50776360/

相关文章:

javascript - 使用 highcharts-export-server 注入(inject)变量饼图时出现问题

c - 为什么我必须返回指针?

java - 更改二维数组中的多个元素

javascript - 检查一个数组是否是另一个数组的子集(但要检查一个属性)

javascript - 在js中将嵌套数组转换为JSON字符串?

javascript - 如何在 for 循环中正确使用 es6 "let"关键字

javascript - 在 JavaScript 中使用 slice()

javascript - 适用于 iPad、iPhone 的 Safari 中的全屏

javascript - node.js如何用参数响应.js文件

javascript - 在 for 循环中连接字符串 JavaScript 的最有效方法