Как и ваша статья, это вдохновило меня попробовать это самостоятельно. Некоторые примечания относительно вашего решения (которое мне очень понравилось). Знаете ли вы, что, используя синтаксис деструктурирующего присваивания ([s.charAt[0],...arr] ), вы на самом деле снова прогоняете весь массив? Это не важно, если ваш массив состоит из нескольких элементов, но может иметь большое значение, если у вас есть очень большой массив, который в вашем случае вы запускаете дважды. Мне бы очень хотелось услышать ваше мнение по этому поводу.
Еще одна вещь, я думаю, что в этом коде [s.charAr[0] вы на самом деле имеете в виду [s.charAt(0), потому что вы вызываете метод для строки, и вы не можете вызвать его с помощью квадратных скобок.