Tengo un código javascript que le pide al usuario que ingrese una entrada, imprime una lista de entradas y las elimina. El problema es que cuando el usuario ingresa eliminar y luego ingresa un número no válido, el código dice que ingrese un índice correcto, pero si el usuario aún ingresa un valor de índice incorrecto según mis especificaciones, el código deja de verificar si pasa la prueba. Necesito el código para verificar constantemente si la entrada es válida para el índice incluso después de que el usuario siga ingresando un número de índice incorrecto. El código no debe salir a menos que se ingrese el valor de índice correcto. Aquí está el código
let action = prompt("What would you like to do"); const todo = [] let count=0 let tracker=0 let char = 'x' while (action !== 'quit' && action !== 'q'){ if (action === 'new'){ action = prompt("What would you like to add"); todo.push(action) tracker=0; } else if (action === 'list'){ console.log(char.repeat(10)) for (let elements of todo){ console.log(`${tracker}: ${elements}`) tracker++ } console.log(char.repeat(10)) action = prompt("What would you like to do"); } else if (action === 'delete'){ let index = parseInt(prompt("Enter the index of the todo you would like to delete")) if (index<todo.length && index >-1 && index!==null){ todo.splice(index,1) tracker=0; } else{ let index = parseInt(prompt("Enter a correct index")) } action = prompt("What would you like to do"); } else { action = prompt("What would you like to do"); } } console.log("Ok quit the app")Reemplace esta parte:
let index = parseInt(prompt("Enter the index of the todo you would like to delete")) if (index<todo.length && index >-1 && index!==null){ todo.splice(index,1) tracker=0; } else{ let index = parseInt(prompt("Enter a correct index")) }Con esto, usando un bucle:
let index = parseInt(prompt("Enter the index of the todo you would like to delete")); while (!(index < todo.length && index >= 0)) { index = parseInt(prompt("Enter a correct index")); } todo.splice(index, 1); tracker = 0; Nota: parseInt nunca devolverá null , por lo que no es necesario verificarlo. En su lugar, podría devolver NaN . Pero como cualquier comparación con NaN se evaluará como false , la negación de eso (usando ! ) se evaluará como true .