Estoy trabajando en un desafío de CodeWars y no estoy seguro de por qué mi método de reducción no devuelve el resultado esperado.
Aquí están las instrucciones:
Un número narcisista es un número de longitud n en el que la suma de sus dígitos a la potencia de n es igual al número original. Si esto parece confuso, consulte el siguiente ejemplo.
Ej: 153, donde n = 3 (número de dígitos en 153) 1³ + 5³ + 3³ = 153
Escriba un método is_narcissistic(i) que devuelva si i es o no un número narcisista.
Aquí está mi solución:
function narcissistic(value) { let digits = (value + '').split('').map(Number); let narc = digits.reduce((a, c) => a + (c ** digits.length)) return narc === value; } console.log(narcissistic(371))Cuando lo pruebo con 371, que es un número narcisista, se devuelve 341 en lugar de 371
Si no proporciona un valor inicial, el primer elemento se utiliza como valor inicial y no se multiplica. Establezca el valor inicial en 0.
function narcissistic(value) { let digits = (value + '').split('').map(Number); let narc = digits.reduce((a, c) => a + (c ** digits.length), 0) return narc === value; } console.log(narcissistic(371))