Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

117
Views
¿Cómo puedo iterar sobre un elemento en una matriz pero no moverme del índice hasta que se cumpla una condición?

Hola familia, feliz San Valentín. No estoy buscando una solución de código, sino algunas ideas sobre cómo podría iterar sobre una matriz, llamémosla matriz = [1, 1, 1], y no pasar al siguiente elemento de la matriz hasta que se cumpla una condición . Por ejemplo, quiero comenzar en el índice 0 y solo pasar al siguiente índice (1) después de que el valor de dicho índice sea (modificado/cambiado) para que sea mayor que el valor del índice anterior. En el índice 0 tenemos el valor 1, antes de pasar al índice 1 quiero cambiar el valor del índice 1 para que sea mayor que el valor del índice 0. Algo así si tenemos matriz = [1, 1, 1] Quiero para iterar sobre la matriz, comience en el índice 0. Compare si el valor del índice 0 es mayor o igual que el valor del índice 1 (el siguiente índice) Si es así, agregue 1 al valor del índice 1 hasta que ese valor sea mayor que el valor del índice 0. Primera iteración obtenemos matriz = [1, 2, 1]. La próxima iteración obtenemos matriz = [1, 2, 3].

En este punto, he tratado de iterar sobre la matriz con un bucle for, toma cada elemento, compara y agrega 1 al elemento, pero cuando llego al último elemento, no agrega nada, ya que estoy al final de la matriz y allí no es un elemento para recorrer. Obtengo matriz = [1, 2, 2] Por favor ayuda fam. Esto es lo que tengo hasta ahora.

 // array const array = [1, 1, 1] // iterating over array for (let i = 0; i < array.length; i++) { // compare if (array[i] >= array[i + 1]) { // increase next number by 1 array[i + 1] += 1 } }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puede comenzar desde el índice 1 , porque no puede cambiar el valor en el índice 0 debido a que falta el valor anterior.

Dentro del ciclo, incremente el valor hasta que sea mayor que el valor en el último índice.

 const array = [1, 1, 1] for (let i = 1; i < array.length; i++) { while (array[i] <= array[i - 1]) array[i]++; } console.log(array);

Si no desea iterar para el incremento, puede actualizar el valor directamente.

 const array = [1.2, 1, 1] for (let i = 1; i < array.length; i++) { if (array[i] <= array[i - 1]) array[i] = Math.floor(array[i - 1] + 1); } console.log(array);

about 4 years ago · Juan Pablo Isaza Report

0

¡Feliz San Valentín!

Veamos qué puede estar causando que su matriz devuelva [1,2,2]. Una buena práctica (y un poco tediosa) es seguir sus entradas y ver elemento por elemento cómo se manipula su matriz.

  • entrada: [1,1,1]
  • Primer pase: [1,1,1], cambia a [1,2,1]
  • Segundo pase:[1,2,1] cambia a [1,2,2]

Es posible que haya notado que el comportamiento no deseado ocurre en el segundo paso. Es porque está agregando 1 al valor y no incrementando según el índice en el que se encuentra.

Ahora... ¡vamos a arreglarlo!

Si asumimos que su entrada es siempre [1,1,1] ( LAS SUPOSICIONES IMPORTAN :) ), simplemente puede cambiar la matriz.

 array[i + 1] += 1 to array[i+1] += array[i]

Si está buscando un enfoque más completo en el que pueda tomar cualquier entrada de matriz, ordenar y mostrar una matriz incremental, ¡eso es un poco más adelante! Concéntrate en los fundamentos :)

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!