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

68
Vistas
Matriz de inversión de JavaScript

 function reverseArrayInPlace(array) {
 for (let i = 0; i < Math.floor(array.length / 2); i++) {
 let old = array[i];
 array[i] = array[array.length - 1 - i];
 array[array.length - 1 - i] = old;
 }
 return array;
}


let arrayValue = [1, 2, 3, 4, 5];
reverseArrayInPlace(arrayValue);
console.log(arrayValue);
// → [5, 4, 3, 2, 1]

Estoy trabajando en las estructuras de datos del libro Eloquent JavaScript. En general, entiendo cómo funciona este ciclo, que es cortar la matriz por la mitad y luego comenzar a intercambiar elementos en los lados opuestos. pero aquí mi problema: la primera ronda del ciclo, mi comprensión de "arreglo [i]" es en el índice 0 y "Math.floor(array.length / 2)" está en el índice 1. Entonces, establecemos old = index 0 y luego lo anulamos a "array[array.length - 1 - i]". la pregunta es primero qué significa exactamente -i part y qué índice tiene este "array[array.length - 1 - i]" ubicado en la primera ronda del bucle. por favor que alguien me lo explique soy muy visual y no puedo pasarlo si no veo cada enunciado en accion.

almost 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

más fácil de entender, y sin el problema de la longitud de arr. impar

 function reverseArrayInPlace(arr)
 {
 for (let i= 0, j= arr.length -1; i < j; i++, j--) 
 {
 // swapp values of arr[i] and arr[j]
 [ arr[i], arr[j] ] = [ arr[j], arr[i] ]; 
 }
 return arr;
 }


let arrayValues = [1, 2, 3, 4, 5];

reverseArrayInPlace( arrayValues );

document.write( JSON.stringify( arrayValues ));

almost 4 years ago · Santiago Trujillo Denunciar

0

array.length - 1 - i está en la primera ronda array.length - 1 - 0 que es el último elemento de la matriz. Entonces, el ciclo intercambia el primer y el último elemento, luego incrementa i . A continuación, se redondea el segundo y el valor anterior al último se intercambiará y así sucesivamente.

 Array: 1234567890
1st Iteration i=0: ^ ^
2nd Iteration i=1: ^ ^
3rd Iteration i=2: ^ ^
4th Iteration i=3: ^ ^
5th Iteration i=4: ^^
almost 4 years ago · Santiago Trujillo Denunciar

0

Una matriz tiene índice cero. Es decir, el primer elemento de una matriz está en la posición [0]. Cuando usa array.length , devuelve un total de elementos de matriz que pueden resultar confusos para usted porque una matriz de longitud 5 tendrá su último elemento ubicado en array[4] (porque cero es el primero).

Para cada iteración en su función, usa el contador i para encontrar la posición al final de la matriz que coincide con la iteración.

 array.length - 1 - i

La parte -1 se explica arriba. Cuando usa array.length, debe restar 1 para obtener la posición real.

almost 4 years ago · Santiago Trujillo 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