Write a function repeatAlpha
that takes a string and displays it
repeating each alphabetical character as many times as its alphabetical index.
Solution
const range = (start, stop, step) =>
Array.from(
{ length: Math.ceil((stop - start) / step) },
(_, i) => start + i * step
);
const upperAlpha = range("A".charCodeAt(0), "Z".charCodeAt(0) + 1, 1).map((x) =>
String.fromCharCode(x)
);
const lowerAlpha = range("a".charCodeAt(0), "z".charCodeAt(0) + 1, 1).map((x) =>
String.fromCharCode(x)
);
function getAlphaIndex(char) {
if (char === char.toUpperCase()) {
return upperAlpha.indexOf(char) + 1;
}
if (char === char.toLowerCase()) {
return lowerAlpha.indexOf(char) + 1;
}
}
function repeatAlpha(text) {
let occurrence = [];
Array.from(text).forEach((char) => {
let count = getAlphaIndex(char);
let result = Array(count).fill(char).join("");
occurrence.push(result);
});
return occurrence.join("");
}
console.log(repeatAlpha("Becky"));
console.log(repeatAlpha("neNgi"));
console.log(repeatAlpha("ChInwendu"));
console.log(repeatAlpha("dindustack"));
Result
BBeeeeeccckkkkkkkkkkkyyyyyyyyyyyyyyyyyyyyyyyyy
nnnnnnnnnnnnnneeeeeNNNNNNNNNNNNNNgggggggiiiiiiiii
CCChhhhhhhhIIIIIIIIInnnnnnnnnnnnnnwwwwwwwwwwwwwwwwwwwwwwweeeeennnnnnnnnnnnnndddduuuuuuuuuuuuuuuuuuuuu
ddddiiiiiiiiinnnnnnnnnnnnnndddduuuuuuuuuuuuuuuuuuuuusssssssssssssssssssttttttttttttttttttttaccckkkkkkkkkkk
Top comments (1)
Thank for sharing. In addition, I would like to have a verion of repeatAlph which is using built-in String
repeat