Estoy tratando de escribir una función para obtener la longitud de una cadena sin usar la propiedad .length ni bucles ni métodos integrados. Estoy usando recursividad, sin embargo, la instrucción de detención no está evaluando y provocando un desbordamiento de pila. Probé la string[i]
y, efectivamente, una vez que se alcanza la longitud, la consola registra "indefinido", pero la declaración if aún no se evalúa.
const getLength = (string, i = 0) => { if (string[i] === 'undefined') return 0; return 1 + getLength(string, i+1); } console.log(getLength("what is going on??")); //18
el estado if debe ser string[i] === undefined
Su prueba para indefinido no funciona
Puede realizar pruebas falsas o más detalladas.
Aquí hay solo uno falso, fallará en valores falsos como 0
const getLength = (string, i = 0) => string[i] ? 1 + getLength(string, i+1) : 0; console.log(getLength("what is going on??")); //18