Estoy tratando de obtener una salida como esta:
['h', 'ee', 'lll', 'llll', 'ooooo']actualmente mi salida es:
[ 'h', 'ee', 'lll', 'lll', 'ooooo' ]El problema es que la segunda aparición de la "l" no se repite una vez más porque cuento el índice de la letra y luego sumo 1 y solo cuento la primera aparición de la "l". Este es el código que tengo hasta ahora, cualquier ayuda sería genial.
function mumble(string) { string.toLowerCase(); let arrayPush = []; let array = string.split(""); let count = 0; let char = []; array.map((letter) => { count = array.indexOf(letter); arrayPush.push(letter.repeat(count + 1)); }); return arrayPush; } console.log(mumble("hello"));No use indexOf , use el segundo parámetro en la devolución de llamada .map para determinar el índice (y a partir de eso, la cantidad de veces que se repetirá la cadena).
function mumble(string) { string.toLowerCase(); let arrayPush = []; let array = string.split(""); let count = 0; let char = []; array.map((letter, i) => { arrayPush.push(letter.repeat(i + 1)); }); return arrayPush; } console.log(mumble("hello"));En lugar de aplicar .map a una matriz split de la cadena, simplemente puede recorrer la cadena, acceder a cada carácter usando el método de cadena .charAt() y empujar su producto .repeat() a la matriz de resultados.
Fragmento de trabajo:
console.log(mumble('hELlo')); function mumble(string) { const result = []; for(let i=0; i<string.length; i++) { result.push(string.toLowerCase().charAt(i).repeat(i+1)); } return result; } // end function mumble;