计算字符串中的重复符号并使用Javascript对它们进行分组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算字符串中的重复符号并使用Javascript对它们进行分组相关的知识,希望对你有一定的参考价值。

我需要创建一个执行文本压缩的函数。函数接受一个参数x - text并返回由字符组成的文本并连续重复计数。

Ks =“太棒了”

产量

我知道该怎么做

我试过这段代码:

const randomText = 'aaavvvfdff'

function getTextCompression(x) {
  const chars = x.split('')

  const duplicatesCount = chars.reduce((count, char) => {
    count[char] = (count[char] || 0) + 1;
    return count;
  }, {});

  console.log(duplicatesCount)
}

getTextCompression(randomText);

获得输出:{a:3,v:3,f:3,d:1}

不知道接下来该做什么或者它是好方法吗?

那么如何编写一个返回该输出的函数呢?

答案

你可以使用一个简单的正则表达式和一个String.prototype.replace()来实现这个函数,这是一个run-length encoding

function rle (str) {
  return str.replace(/([^])1*/g, (match, p) => `${p}${match.length}`)
}

let x = 'aaavvvfdff'

console.log(rle(x))

以上是关于计算字符串中的重复符号并使用Javascript对它们进行分组的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript 从字符串中删除某些字符 [重复]

JavaScript - 如何检查是不是在数字输入字段中输入了字母字符或符号[重复]

在 Javascript 中使用跨度和符号更改 HTML [重复]

使用javascript在包含特殊字符的URL中传递参数[重复]

哪些字符对 JavaScript 变量名有效?

JavaScript - 计算属性 - 深深的困惑