JavaScript:打印每个字符序列的不间断出现次数的字符
JavaScript: Print character with number of uninterrupted occurrences for each sequence of characters
这不是 Counting the occurrences / frequency of array elements 的副本
有区别。
我有一个包含字符的数组:
const data = ['a', 'a', 'b', 'x', 'x', 'x', 'a'];
我需要对每个字符序列进行计数,并像这样打印具有不间断出现次数的字符(每行应在程序发现不间断出现后记录:
a: 2
b: 1
x: 3
a: 1
我想使用 'while',但我有点卡在这个逻辑上。
const countSeq = (arr) => {
while (arr.length > 0) {
// logic there
console.log(/*char: count number*/);
if (arr.length === 0) break;
}
}
抱歉打扰了,我正在学习。提前致谢!
const data = ['a', 'a', 'b', 'x', 'x', 'x', 'a'];
const result = data.reduce((acc, val) => {
const prevSeq = acc[acc.length - 1];
if (!prevSeq || prevSeq.key !== val) {
acc.push({ key: val, count: 1 });
} else {
prevSeq.count++;
}
return acc;
}, []);
console.log(result);
这不是 Counting the occurrences / frequency of array elements 的副本 有区别。
我有一个包含字符的数组:
const data = ['a', 'a', 'b', 'x', 'x', 'x', 'a'];
我需要对每个字符序列进行计数,并像这样打印具有不间断出现次数的字符(每行应在程序发现不间断出现后记录:
a: 2
b: 1
x: 3
a: 1
我想使用 'while',但我有点卡在这个逻辑上。
const countSeq = (arr) => {
while (arr.length > 0) {
// logic there
console.log(/*char: count number*/);
if (arr.length === 0) break;
}
}
抱歉打扰了,我正在学习。提前致谢!
const data = ['a', 'a', 'b', 'x', 'x', 'x', 'a'];
const result = data.reduce((acc, val) => {
const prevSeq = acc[acc.length - 1];
if (!prevSeq || prevSeq.key !== val) {
acc.push({ key: val, count: 1 });
} else {
prevSeq.count++;
}
return acc;
}, []);
console.log(result);