JSFiddle - React, Tailwind, and code Playground

by Rajesh Danabal

JavaScript

let word = 'aabcccccaaa';
let chars = word.split('');
let counter = 1;
let occur = 0;

let result = chars.reduce(function(prevValue, currValue, index, array) {
  let isLastChar = array.length - 1 === index;

  if (prevValue.substr(prevValue.length - 1) !== currValue) {
    occur = counter;
    counter = 1;
    prevValue = prevValue + occur + currValue;
    return isLastChar ? prevValue + 1 : prevValue
  } else {
    counter++;
    return isLastChar ? prevValue + counter : prevValue;
  }
});

console.log("result", result);