/**
* @param {character[]} chars
* @return {number}
*/
var compress = function (chars) {
let cur = '',
index = 0
for (let i = 0; i < chars.length; i++) {
if (chars[i] === cur) {
index += 1
if (index === 2) {
chars.splice(i, 1, index.toString())
} else if(index > 2) {
const strIndex = index.toString()
const len = (index - 1).toString().length
chars.splice(i - len, len + 1, ...strIndex)
i += strIndex.length - len - 1
}
} else {
cur = chars[i]
index = 1
}
}
return chars.length
};