JSFiddle - React, Tailwind, and code Playground
by vjeux
JavaScript
Array.prototype.last = function () { return this[this.length - 1]; };
function step(str) {
return str.split('')
.reduce(function(list, char) {
var last = list.last();
if (last && last.char === char) {
last.count++;
} else {
list.push({char: char, count: 1});
}
return list;
}, [])
.map(function (group) {
return group.count + group.char;
})
.join('');
}
var str = '1';
for (var i = 0; i < 10; ++i) {
console.log(str);
str = step(str);
}