Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

165
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda