Esta función debería tomar una matriz e invertir su orden. Funciona, pero no entiendo qué está haciendo la tercera línea "for (let i = arr.length..."). ¿Puede alguien explicar qué se está enviando a la nueva matriz invertida?
const reverseArray = arr => { let reversed = []; for (let i = arr.length - 1; i >= 0; i--) { reversed.push(arr[i]); } return reversed }Si eres nuevo en Javascript o en la programación en general, consulta este sitio web genial: W3Schools
Lo que hace la tercera línea es pasar del último elemento de una matriz (por lo tanto, arr.length - 1, el -1 se debe a que las posiciones de la matriz comienzan en 0, no en 1) al primero, empuja cada valor a una nueva matriz (al revés) y así se obtiene el resultado final.
ex - arr[a,b,c,d,e,f,g] 0 1 2 3 4 5 6este ciclo se trabaja actualmente como inverso como (6,5,4,3,2,1,0) porque consiste en--
for (let i = arr.length - 1; i >= 0; i--) { reversed.push(arr[i]); }cuando el bucle ejecuta el último elemento de la matriz arr en la inserción primero de la matriz invertida
Para la línea:
for (let i = arr.length - 1; i >= 0; i--)El ciclo for comienza en el último elemento y recorre cada uno hasta llegar al elemento final. Cada vez que agrega el elemento de la matriz a la matriz invertida.
Como ejemplo con una matriz:
Index Value 0 10 1 20 2 30 3 40La primera parte del bucle for
let i = arr.length - 1Establece i en arr.length - 1 = 4 - 1 = 3
Entonces el primer valor agregado sería arr[3] = 40
Cada iteración del bucle (mientras i sea >- 0) asigna el valor i indexado actual y disminuye i en 1.