DEV Community

Chinwendu Agbaetuo
Chinwendu Agbaetuo

Posted on

Repeat the Character in a string based on its Alphabetical index

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")); 
Enter fullscreen mode Exit fullscreen mode

Result

BBeeeeeccckkkkkkkkkkkyyyyyyyyyyyyyyyyyyyyyyyyy nnnnnnnnnnnnnneeeeeNNNNNNNNNNNNNNgggggggiiiiiiiii CCChhhhhhhhIIIIIIIIInnnnnnnnnnnnnnwwwwwwwwwwwwwwwwwwwwwwweeeeennnnnnnnnnnnnndddduuuuuuuuuuuuuuuuuuuuu ddddiiiiiiiiinnnnnnnnnnnnnndddduuuuuuuuuuuuuuuuuuuuusssssssssssssssssssttttttttttttttttttttaccckkkkkkkkkkk 
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
viktorle1294 profile image
Viktor Le • Edited

Thank for sharing. In addition, I would like to have a verion of repeatAlph which is using built-in String repeat

function repeatAlph(text) { let result = ''; for (let i = 0; i < text.length; i++) { let repeatTime = getIndexCharInAlphabet(text[i]); result += text[i].repeat(repeatTime); } return result; } 
Enter fullscreen mode Exit fullscreen mode