将链分组到数组中的最简单方法? [已关闭]

问题描述 投票:0回答:2

如果你在 javascript 中有一个数组,即

['a', 'a', 'a', 'b', 'b', 'b', 'a', 'a', 'a']
按相似值对其进行分组的最简单方法是什么?

group(['a', 'a', 'a', 'b', 'b', 'b', 'a', 'a'])
// [['a','a','a'],['b','b','b'],['a','a']]
javascript lodash underscore.js
2个回答
0
投票

这是按预期工作的函数

group()

function group(arr) {
  let ans = []
  let tempArray = []
  let currentText = ''
  for(let i = 0; i <= arr.length; i++) {
    tempArray.push(currentText)
    if(currentText !== arr[i]) {
      currentText = arr[i]
      tempArray = []
      ans.push(tempArray)
    }
  }
  ans.pop()
  return ans
}

-1
投票

如果元素是字符,您可以使用正则表达式:

const arr = ['a', 'a', 'a', 'b', 'b', 'b', 'a', 'a', 'a', 'c'];

grouped = arr.join('').match(/(.)\1*/g);

console.log(grouped);

© www.soinside.com 2019 - 2024. All rights reserved.