function parse(data) {
var result = []
var current = 0
data.split('').map((c) => {
switch (c) {
case 'i': current++; break
case 'd': current--; break
case 's': current = current ** 2; break
case 'o': result.push(current); break
default: break
}
})
return result
}
parse("iiisdoso")
parse("iiisxxxdoso")
function parse(data) {
// Keeps only valid characters.
const validData = data.replace(/[^idso]+/g, "");
let res = [];
let value = 0;
for (const item of validData) {
if (item === "o") {
res.push(value);
}
value = (item === "i") ? value += 1 : value;
value = (item === "d") ? value -= 1 : value;
value = (item === "s") ? value *= value : value;
}
return res;
}
parse("iiisdoso")
parse("iiisxxxdoso")