Me gustaría comparar dos matrices y luego devolver el índice una vez que la primera matriz es menos que la segunda matriz. Pero si el valor inicial de la primera matriz es mayor que la segunda matriz, debe omitir hasta que el valor de la primera matriz sea menor que la segunda matriz. Por ejemplo
case1: Esto debe devolver index = 2 (exampleArr1 < exampleArr2 en index =2)
var exampleArr1 = [15,9,7,5,3,1]; var exampleArr2 = [2,6,8,12,17,22]; function compareArray(exampleArr1,exampleArr2){ ... return result }case2: Esto debe devolver index = 6 (exampleArr1 < exampleArr2 en index =6)
var exampleArr1 = [1,2,4,5,15,9,7,5,3]; var exampleArr2 = [2,3,5,6,2,6,8,12,17]; function compareArray(exampleArr1,exampleArr2){ ... return result }Cualquier consejo u orientación sobre esto sería muy apreciado, gracias.
Un bucle for simple será suficiente. En nuestro ciclo, ya tenemos el índice, así que solo comparamos la primera matriz en este índice con la segunda matriz en este índice.
const compareArray = (arr1, arr2) => { let startIndex = 0 if (arr1[0] < arr2[0]) { // find the index from arr1 that is greater than arr2 startIndex = arr1.findIndex((a, index) => a > arr2[index]) } for (let i = startIndex; i < arr1.length; i++) { if (arr1[i] < arr2[i]) { return i } } } const exampleArr1 = [15,9,7,5,3,1] const exampleArr2 = [2,6,8,12,17,22] const exampleArr3 = [1,2,4,5,15,9,7,5,3] const exampleArr4 = [2,3,5,6,2,6,8,12,17] console.log(compareArray(exampleArr1, exampleArr2)) console.log(compareArray(exampleArr3, exampleArr4))Utilice el método findIndex en su función como
var exampleArr1 = [15,9,7,5,3,1]; var exampleArr2 = [2,6,8,12,17,22]; function compareArray(exampleArr1,exampleArr2) { if (exampleArr1[0] < exampleArr2[0]) { exampleArr1 = exampleArr1.slice(1); } return exampleArr1.findIndex(function(e, i) { return exampleArr2[i] > e; }); } console.log(compareArray(exampleArr1, exampleArr2));