La función acepta 3 entradas: (cadena (str), punto de inicio en la cadena (índice) y cuántos caracteres eliminar después de eso (recuento)).
function removeFromString(str, index, count) { let newStr = ''; for (let i = index; i <= (index + count); i++) { newStr = str.replace(str[i], ''); } return newStr; }Está devolviendo salidas que pueden eliminar un carácter como máximo, pero nada más que eso, que no es lo que estoy tratando de lograr.
Lo que quiero es una función que, cuando se llame, devolverá una función sin los caracteres especificados en los parámetros index y count.
Con
newStr = str.replace(str[i], '') siempre está tomando str como la cadena base para reemplazar, que es la entrada original. Nunca usas newStr excepto después de la iteración final; todos los reemplazos realizados antes de esa fecha se pierden.
Otro problema es que str.replace(str[i], '') reemplazará el mismo carácter si existe antes en la cadena, en lugar del índice que desea.
En su lugar, corte los índices de la cadena.
const removeFromString = (str, index, count) => ( str.slice(0, index + 1) + str.slice(index + count + 1) ); console.log(removeFromString('123456', 2, 2));Es solo una cuestión de usar el método de subcadena de JS.
Definición del método de subcadena de Mozilla Developer Network
function removeFromString(str, index, count) { return str.substring(0, index) + str.substring(index+count); } console.log(removeFromString('fofonka', 2, 2));