¿Por qué la suma de 2 matrices une todo en una cadena, concatenando el primer y el último valor?
let array = [1, 2] let array2 = [3, 4] let array3 = array + array2 console.log(array3) // 1,23,4Así es como funciona JavaScript. Ambos son objetos, no hay una cosa definida para + entre un Array y un Array, por lo que hace lo predeterminado de convertir a String y concatenarlos (todavía como String).
Utilice el método Array.prototype.concat para lograr su objetivo.
let array = [1, 2] let array2 = [3, 4] let array3 = array.concat(array2); console.log(array3) // [1, 2, 3, 4]Alternativamente, puede usar el operador de propagación:
let array = [1, 2] let array2 = [3, 4] let array3 = [...array, ...array2]; console.log(array3) // [1, 2, 3, 4]Porque el operador + actúa de manera diferente según el tipo de los operandos dados.
En su ejemplo, puede notar que:
array + array2 == array.toString() + array2.toString()Para obtener más información, puede leer losdocumentos y lasespecificaciones .
Javascript intenta ser inteligente y descubrir lo que estás tratando de hacer. Un signo de suma implica agregar dos cadenas, por lo que Javascript continúa y convierte las matrices en cadenas primero para usted. Que bonito, ¿verdad?
Lo que quieres hacer es implementar el método concat:
const array1 = ['a', 'b', 'c']; const array2 = ['d', 'e', 'f']; const array3 = array1.concat(array2)