Necesito ayuda para entender cómo funciona este código. tarea: sin utilizar funciones, debe invertir todos los elementos de una lista. Es decir, rehacerlo de ida y vuelta.
Ejemplo: Entrada: [-89,71,11,0,4,6] Salida: [6,4,0,11,71,-89]
Encontré este ejemplo, pero necesito explicar cómo funciona y poder explicar todos los aspectos del código:
let arr = [1, 2, 3, 4, 5, 6, 7]; let n = arr.length-1; for(let i=0; i<=n/2; i++) { let temp = arr[i]; arr[i] = arr[ni]; arr[ni] = temp; } console.log(arr);Puedes usar mucho más simple como:
const arr = [1, 2, 3, 4, 5] const reversedArr = [] for (let i = arr.length - 1; i >= 0; i--) { reversedArr.push(arr[i]) } console.log(reversedArr)La explicación es simplemente iterar sobre cada elemento en la matriz original, pero comenzando desde el último elemento (arr.length = 5 aquí) y empujar cada uno de ellos a una nueva matriz.
El código solo está haciendo una función inversa.
let temp = arr[i];arr[i] = arr[ni];arr[ni] = temp; está tratando de cambiar la secuencia entre el elemento i y el elemento i del último elemento.
En su código, n es el último elemento.
Ejemplo, i =0, temp equivaldrá a ser el primer elemento en arr que es 1, y arr[ni] será el último elemento i (el último elemento) que es 7.
Luego, el conjunto de códigos arr[i] (primer elemento en arr ) al valor del último elemento arr[ni] que es 7.
Finalmente, el código asigna el valor de arr[n-1] (último elemento en arr ) a temp que es 1 y el primer elemento en arr .
Entonces invierte con éxito el primer y último elemento y el ciclo sigue haciendo lo mismo cuando i = 1,2 ......
let arr = [1, 2, 3, 4, 5, 6, 7]; let n = arr.length-1; for(let i=0; i<=n/2; i++) { let temp = arr[i]; arr[i] = arr[ni]; arr[ni] = temp; } console.log(arr);