1. /**
    2. * @param {character[]} chars
    3. * @return {number}
    4. */
    5. var compress = function (chars) {
    6. let cur = '',
    7. index = 0
    8. for (let i = 0; i < chars.length; i++) {
    9. if (chars[i] === cur) {
    10. index += 1
    11. if (index === 2) {
    12. chars.splice(i, 1, index.toString())
    13. } else if(index > 2) {
    14. const strIndex = index.toString()
    15. const len = (index - 1).toString().length
    16. chars.splice(i - len, len + 1, ...strIndex)
    17. i += strIndex.length - len - 1
    18. }
    19. } else {
    20. cur = chars[i]
    21. index = 1
    22. }
    23. }
    24. return chars.length
    25. };