Ejecuté el código usando diferentes matrices a las que les faltaba un número entre 1 y 9, pero seguía devolviendo -1.
function findMissing(arrOfNumbers) { const integers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; for (let index = 0; index < arrOfNumbers.length; index++) { if (integers[index] !== arrOfNumbers[index]) { return integers[index]; } return -1; } } console.log(findMissing([0, 1, 3, 4, 6, 7, 8, 9])); //returns -1 instead of 5Si entendí el problema, quiere que falten elementos de la matriz 2. Si es así, simplemente use,
arr1.filter(x=> !arr2.includes(x));En tu caso
const array1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; const array2 = [0, 1, 3, 4, 6, 7, 8, 9]; const result = array1.filter(x=> !array2.includes(x)); // returns 2 , 5 console.log(result)Puede distribuir la matriz sobre un objeto y comparar los pares clave y valor del objeto. Si la clave y el valor son diferentes, eso significa que falta algún valor en la matriz de entrada que está fuera de rango. Tenga en cuenta el uso de != , es intencional para comparar valores y no tipos.
function findMissing(arrOfNumbers) { const obj = {...arrOfNumbers}; for(const [key, val] of Object.entries(obj)) { if(key != val) { return key; } } return -1; } // returns 2 since it is the first missing value in the order console.log(findMissing([0, 1, 3, 4, 6, 7, 8, 9]));