【发布时间】:2020-07-27 04:54:35
【问题描述】:
我正在尝试确定字符串中的组。
例如“AAABBCCCCD”应该有["AAA", "BB", "CCCC", "D"] 根据字符串中的模式作为组。
这是我的简单功能:
const patternGroup = (str) => {
let cursor = str[0]
let groups = []
let currentGroup = ""
for (let i = 0; i < str.length; i++) {
let ch = str[i]
if (ch === cursor) {
currentGroup += ch
}
else {
groups.push(currentGroup)
currentGroup = ch
cursor = ch
}
}
if (currentGroup !== "") {
groups.push(currentGroup)
}
return groups
}
它按预期工作,但我正在寻找一个更简单的函数,可能使用 map/reduce 或正则表达式。有什么想法吗?
【问题讨论】:
-
在工作代码中寻求设计建议的问题更适合Code Review。
标签: javascript regex typescript dictionary reduce