3 ¿Como se comportan los punteros con los arrays La verdad de las funciones

 Cómo se comportan los punteros con los arrays: La verdad detrás de las funciones en JavaScript

¡Hola, comunidad! 👋 ¿Cómo están? Espero que todo bien por ahí. Por acá, todo más que bien. Hoy vamos a hablar de un tema que parece básico pero que es fundamental para entender cómo funcionan los arrays y las funciones en JavaScript: los punteros y la manipulación de arrays.

🔄 Intercambiando elementos en un array

Imaginemos que queremos intercambiar dos elementos de un array. Por ejemplo, cambiar el elemento en la posición 2 (el número 5) con el de la posición 7 (el número 14).

javascript
Copy
Download
let arr = [1, 2, 5, 4, 8, 10, 14, 3];

❓ ¿Cómo lo hacemos?

Primero, debemos entender que en JavaScript, los arrays son objetos, y cuando los pasamos a una función, no se copia todo el array, sino que se pasa una referencia (similar a un puntero en otros lenguajes).

🧠 Entendiendo las referencias

Cuando declaramos:

javascript
Copy
Download
let arr = [1, 2, 3, 4];

arr no es el array en sí, sino un "puntero" que apunta a la dirección de memoria donde está almacenado el primer elemento.

Si pasamos arr a una función:

javascript
Copy
Download
function swap(array) {
    array[0] = "Hola";
}
swap(arr);
console.log(arr); // ["Hola", 2, 3, 4]

¿Qué pasó? Modificamos el array original, porque array dentro de la función apunta al mismo lugar en memoria que arr.

✂️ ¿Y si queremos una copia real?

Si no queremos modificar el original, debemos crear una copia independiente. Podemos usar slice() o el operador de propagación (...):

javascript
Copy
Download
function swap(array) {
    let copia = array.slice(); // o [...array]
    copia[0] = "Chao";
    console.log(copia); // ["Chao", 2, 3, 4]
}
swap(arr);
console.log(arr); // ["Hola", 2, 3, 4] (el original no cambió)

🔥 Conclusión

  • Los arrays se pasan por referencia, no por valor.

  • Si modificas un array dentro de una función, afectas al original.

  • Usa slice() o [...array] si necesitas una copia independiente.

¿Les sorprendió este comportamiento? ¿Lo sabían? ¡Déjenme sus comentarios! 👇

🚀 ¿Quieren más contenido así? Suscríbanse y síganme para profundizar en estos conceptos.


✨ Bonus: Intercambiando elementos correctamente

Si quieren hacer un swap de elementos en un array, pueden hacerlo así:

javascript
Copy
Download
function swapPositions(arr, pos1, pos2) {
    [arr[pos1], arr[pos2]] = [arr[pos2], arr[pos1]]; // Destructuring
    return arr;
}
console.log(swapPositions([1, 2, 3, 4], 0, 2)); // [3, 2, 1, 4]

¡Espero que les sirva! ¿Qué otros temas quieren que cubra?

Comentarios

Entradas más populares de este blog

5 Diccionarios

6 Ejercicio 1

2 Listas