Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

160
Vistas
¿Cómo puede usar .indexOf para ubicar el índice de una matriz donde los números dejan de aumentar?

Estoy tomando una matriz y necesito devolver el valor del índice donde los números comienzan a aumentar o disminuir. Los números en la matriz aumentan y luego disminuyen [1, 3, 6, 4, 3] (salida = 2) disminuyen y luego aumentan [6, 4, 10, 12, 19] (salida = 1) o la misma secuencia [1 , 3, 5, 7, 9] (salida = -1). Por ahora, solo estoy enfocado en devolver el índice de una matriz que aumenta y luego disminuye, luego creo que puedo resolver las otras condiciones.

 function ArrayChallenge(arr){ for(let i = 0; i < arr.length; i++){ if(arr[i]>arr[i+1]){ console.log(arr.indexOf(arr[i]>arr[i+1])) } } } console.log(ArrayChallenge([1, 2, 4, 5, 7, 3]))

Para mí, el código dice, tome el argumento para el parámetro ( arr ), luego el bucle for pasará por cada índice y comparará i con i+1 , si i es mayor que i+1 , eso significa que la secuencia está disminuyendo. Si ese es el caso, me gustaría registrar en la consola el índice donde eso realmente está sucediendo. Para mi código de ejemplo anterior, la salida debe ser 5 porque ese es el índice donde los números comienzan a disminuir, pero obtengo -1, lo que significa que no se puede encontrar el elemento. Si alguien sabe dónde me estoy equivocando y me puede indicar la dirección correcta, sería genial, estoy bastante seguro de que estoy usando el método .indexOf incorrectamente, pero no sé por qué.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

"arr[i]>arr[i+1]" devuelve un bool "verdadero". Su matriz no contiene ningún valor booleano, por lo que no hay un índice coincidente para ella. Por lo tanto, devuelve -1 porque no puede encontrar ningún elemento coincidente.

EDITAR:

Si desea imprimir el "momento" en que sus valores están disminuyendo, puede intentar algo como esto:

 console.log('Decreasing from index: ' + arr.indexOf(arr[i]) + ' to ' + arr.indexOf(arr[i + 1]))
about 4 years ago · Juan Pablo Isaza Denunciar

0

Utilice return arr[i] en lugar de console.log(arr.indexOf(arr[i]>arr[i+1]))

 function ArrayChallenge(arr){ for(let i = 0; i < arr.length; i++){ if(arr[i]>arr[i+1]){ return arr[i] } } } console.log(ArrayChallenge([1, 2, 4, 5, 7, 3]))
 output: 7
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar el concepto ES6 Classes para lograr el requisito que tiene.

Demostración de trabajo:

 // Defining class using es6 class arrayChallenge { constructor(input_array) { this.input_array = input_array; } getIncreaseThenDecrease() { for(let i = 0; i < this.input_array.length; i++) { if(this.input_array[i]>this.input_array[i+1]) { return this.input_array.indexOf(this.input_array[i]) } } } getdecreaseThenIncrease() { for(let i = 0; i < this.input_array.length; i++) { if(this.input_array[i] < this.input_array[i+1]) { return this.input_array.indexOf(this.input_array[i]) } } } } // Making object with the help of the constructor let arrayChallengeObject = new arrayChallenge([1, 2, 4, 5, 7, 3]); console.log(arrayChallengeObject.getIncreaseThenDecrease()); console.log(arrayChallengeObject.getdecreaseThenIncrease());

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda