Estaba resolviendo un problema en el código lelet, la solución que se me ocurrió hizo que todos los casos de prueba pasaran excepto uno. La entrada de ese caso de prueba es una matriz = [6,1,4,5,3,9,0,1,9,5,1,8,6,7,0,5,5,4,3]. así que convertí la matriz en un número, agregue 1 al número completo y luego la convertí de nuevo al formato de matriz con el resultado, en mi solución, un paso antes de la declaración final, usé parseInt ("6145390195186705543") + 1 luego convierto a cadena y dividir y luego convertir a número. pero durante parseInt(), este método incorporado no puede convertir después de los dígitos 15, obtengo una salida como [6145390195186705000], envío 0 después de 15 dígitos, entonces, ¿alguien tiene alguna idea sobre cómo convertir una cadena de longitud de número más? de 16 a número PD: probé el método bigInt(), técnicamente funcionaría, pero para el problema, bigInt() no funciona y la salida no funciona
var plusOne = function(digits) { let y = digits.map(String); let z = '' for (let i = 0; i < y.length; i++) { z += y[i]; } let a = (parseInt(z) + 1).toString().split('') return a.map(Number) };Bucle hacia atrás sobre los dígitos, y
function addOne(digitArray) { for (let i = digitArray.length - 1; i >= 0; i--) { if (digitArray[i] < 9) { digitArray[i] += 1 break } else { digitArray[i] = 0 if (i === 0) { digitArray.unshift(1) } } } return digitArray } console.log(addOne([])) // [] console.log(addOne([ 0 ])) // [ 1 ] console.log(addOne([ 9 ])) // [ 1, 0 ] console.log(addOne([ 1, 0 ])) // [ 1, 1 ] console.log(addOne([ 1, 9 ])) // [ 2, 0 ] console.log(addOne([ 9, 9 ])) // [ 1, 0, 0 ] console.log(addOne([ 6, 1, 4, 5, 3, 9, 0, 1, 9, 5, 1, 8, 6, 7, 0, 5, 5, 4, 3 ])) // [ 6, 1, 4, 5, 3, 9, 0, 1, 9, 5, 1, 8, 6, 7, 0, 5, 5, 4, 3 ]