Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Concat

22/27
Recursos

Aportes 19

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Si estas trabajando con un arrays de Objs igual una forma de copiar cada elemento sin la referencia podría ser:

const newArray = myArray.map(a => ({…a}));

Recordar que al ser inmutable, los arrays (tanto el nuevo como el viejo) quedaran referenciados por memoria, por lo tanto sí modificamos alguno de los dos, los cambios se verán reflejados en ambos.

const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);

console.log(array3);
// expected output: Array ["a", "b", "c", "d", "e", "f"]

La sintaxis de propagación (…) (Spread) permite que un iterable, como una expresión de matriz o una cadena, se expanda en lugares donde se esperan cero o más argumentos (para llamadas a funciones) o elementos (para literales de matriz), o que se expanda una expresión de objeto en lugares donde se esperan cero o más pares clave-valor (para objetos literales).

Estaba preocupado porque la numeración de ejercicios de los archivos del profe iban un número más adelante que el mío y pensé que me había salteado una clase. Por suerte me di cuenta que en realidad el profe se saltó el número 8 😁

El spread operator es de esos features que mas me gustas de JS.

Método concat: fusiona arrays. Es inmutable (no modifica el array original).

const elements = [1, 2, 3, 4];
const otherElements = [5, 6, 7, 8];

const concatMetod = elements.concat(otherElements);
console.log('Concat:', concatMetod);

Concat con spread operator :

const elements = [1, 2, 3, 4];
const otherElements = [5, 6, 7, 8];

const spreadOperatorMetod = [...elements, ...otherElements];
console.log('Con spread operator: ', spreadOperatorMetod );

Fusionar arrays método push:

const elements = [1, 2, 3, 4];
const otherElements = [5, 6, 7, 8];

elements.push(...otherElements); // con spread operator
console.log('Push con spread operator:', elements);

//elements.push(otherElements); // sin spread operator 
//console.log('Push sin spread operator:', elements);

… split operation, es muy útil 👍🏻

Mucho cuidado, el nombre correcto es ‘spread operator’, no ‘split operation’ para esto => ...

Concat: Fusionar 2 arrays en uno, se genera un nuevo array sin modificar los array que se fusionan

Concat con Spread Operator

const elements = [1, 2, 3, 4];
const otherElements = [5, 6, 7, 8];

const spreadOperatorMetod = [...elements, ...otherElements];
console.log('Con spread operator: ', spreadOperatorMetod );

Nos ayuda a realizar un merge de arrays, ósea juntar dos o mas arrays y mostrarlo en uno solo.

Concat con el clasico push

const elements = [1, 2, 3, 4];
const otherElements = [5, 6, 7, 8];

//elements.push(otherElements); // sin spread operator 
//console.log('Push sin spread operator:', elements);

elements.push(...otherElements); // con spread operator
console.log('Push con spread operator:', elements);

Mi solución a la primera parte fue la siguiente, usando el ciclo for:

const elements = [1,1,2,2];
const otherElements = [3,3,4,4];

const elements3 = [];
for(let i=0; i<elements.length; i++){
    const a = elements[i];
    elements3.push(a);
    if(i === elements.length-1){
        for(let ii = 0; ii<otherElements.length;ii++){
            const b = otherElements[ii];
            elements3.push(b);
        }
    }
}

console.log(elements3)

Escribí algo mas de código pero me dio el mismo resultado.

También podemos usar el split operation para separar un String en caracteres de una manera sencilla:

const caracters = [..."Hello"];
console.log(caracters);

//Output: ['H', 'e', 'l', 'l', 'o']

//concat()
//metodo que se utiliza para fucionar dos arrays
//concat es un metodo inmutable
//Se le pasa como parametro el array que se concatena al array en el que se invocó el metodo

const Array1 = [1,2,3,4,5,6,7,8];
const Array2 = [5,6,7,8];

// for()
let NewArray = [...Array1];
for(let i = 0; i < Array2.length; i++){
  NewArray.push(Array2[i]);
}

console.log("for",NewArray);

//concat()

const Array3 = Array1.concat(Array2);
console.log("concat",Array3);

//(...) copiando el array 

const Array4 = [...Array1,...Array2];
console.log("split operation",Array4);

Cada clase de este curso es muy interesante 👍

Me parece importante destacar que concat no solo recibe arrays, tambien puede recibir los elementos a concatenar en el orden que se quiere, o un solo elemento, lo destaco porque un compañero uso concat para añadir un solo elemento no array y no estaba entendiendo.

[1,2,3].concat('hola')
// returned value [1, 2, 3, 'hola' ]

El Spread operator es el mismo tema de la La Desestructuración de objectos.
Desestructuración es una expresión de JavaScript que permite desempacar valores de arreglos o propiedades de objetos en distintas variables.

Mucho cuidado con las referencias en memoria:

const elements = [1, 1, 2, 2];
const otherElements = [3, 3, 4, 4];

const newArray_fail = elements; // Haciendo esto estamos asignando este nuevo array en una referencia en memoria
const newArray = Object.assign([], elements);

console.log(newArray);
for (let index = 0; index < otherElements.length; index++) {
    const item = otherElements[index];
    newArray.push(item);
}

console.log('NewArray:', newArray);
console.log('Element:', elements);