2 функции code и de_code параметры принимаемые code - массив чисел параметры de_code - объект из code Алгоритм принимает решение как именно необходимо сериализовать массив на основе наличия в нем повторяющихся чисел или последовательных чисел. Если повторяющихся больше будет сериализовать на основе повторений, последовательности больше, по другому.
Реализация полностью через кодирование в charCode меня не устроило. В случае слишком больших повторяющихся данных после декодирования часть массива исчезает. В повторениях тоже есть выбор, но его можно убрать если слишком загруженно. Оно необходимо что бы выдавать максимально возможный хороший результат.
Что бы посмотреть тесты можно запустить index.js в терминале через Node.js