#javascript
Вопрос:
Как подсчитать количество каждого последовательного уникального символа строки.
Case exampe:
// Function Name : CountUniqueChar()
// Input : String
// Output : Array Object [{k: v}]
// Example :
// Input : “aaaasssiia”
// output : [{“a”: 4}, {“s”: 3}, {“i”: 2}, {“a”: 1}]
Комментарии:
1. Пожалуйста, добавьте то, что вы пробовали
Ответ №1:
Использование matchAll()
с регулярным выражением и map()
:
const count = (s) =>
[...s.matchAll(/(.)1*/g)].map(([{length}, c]) => ({[c]: length}));
console.log(count('aaaasssiia'));
Ответ №2:
Вы можете просто добиться этого, используя сопоставление и сопоставление, используя /(w)1*/g
const str = "aaaasssiia";
const result = str.match(/(w)1*/g).map((s) => ({ [s[0]]: s.length }));
console.log(result);
Ответ №3:
Используется for loop
для перебора каждого символа в строке и сравнения со следующим символом, чтобы сохранить количество последовательных уникальных символов.
const input = "aaaasssiia";
const countChar = (str) => {
const list = [];
let count = 1;
for (let i = 0; i < str.length; i ) {
if (str[i] === str[i 1]) {
count
} else {
const obj = {};
obj[str[i]] = count;
list.push(obj);
count = 1;
}
}
return list;
}
console.log(countChar(input))