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

116
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 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