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

123
Vistas
¿Por qué no se devolverá el último valor de matriz?

Tengo una matriz con varios valores y quiero obtener un valor almacenado en el múltiplo de 3. Entonces, en este caso, la nueva matriz debería ser 13 y 28 . Sin embargo, solo obtengo 13 .

Código:

 // array1 --> [ '5', '10', '13', '15', '20', '28' ] var trueLength = array1.length; var iCount = 1; for(var i = 0; i < trueLength;) { if(iCount % 3 != 0) { array1.shift(); } else if (iCount % 3 == 0) { array2.push(array1[i]); array1.shift(); } iCount += 1; if(iCount == trueLength) break; }

Producción:

 [ '13' ]

No veo nada lógicamente incorrecto para que solo genere 13 , lo que no tiene sentido.

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

0

array1.shift(); eliminará el primer elemento de la matriz. Si hace esto mientras itera sobre iCount , se saltará algunos elementos de la matriz, ya que está eliminando elementos e incrementando el índice que se está iterando.

Simplemente filtre la matriz por el módulo del índice que se está iterando.

 const arr = [ '5', '10', '13', '15', '20', '28' ]; const result = arr.filter((_, i) => i % 3 === 2); console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar

0

tienes un pequeño problema lógico en la condición de break , esto sería suficiente

 var array1 = ['5', '10', '13', '15', '20', '28']; var array2 =[]; var trueLength = array1.length; var iCount = 1; for(var i = 0; i < trueLength;) { if(iCount % 3 != 0) { array1.shift(); } else if (iCount % 3 == 0) { console.log(iCount); array2.push(array1[i]); array1.shift(); } iCount += 1; if(iCount == trueLength+1) break; } console.log(array2[1]);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si le gusta usar el patrón de cambio y empujar el valor necesario, puede usar dos variables para realizar un seguimiento de la longitud de los elementos restantes y otra para calcular el resto.

 const array = ['5', '10', '13', '15', '20', '28']; let i = 1, l = array.length; while (l) { const value = array.shift(); if (i % 3 === 0) array.push(value); l--; i++; } console.log(array);

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