Как подсчитать количество каждого последовательного уникального символа строки в javascript

#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))