The concat()
method returns a new array by merging two or more values/arrays.
Example
let primeNumbers = [2, 3, 5, 7]
let evenNumbers = [2, 4, 6, 8]
// join two arrays
let joinedArrays = primeNumbers.concat(evenNumbers);
console.log(joinedArrays);
/* Output:
[
2, 3, 5, 7,
2, 4, 6, 8
]
*/
concat() Syntax
The syntax of the concat()
method is:
arr.concat(value1, value2, ..., valueN)
Here, arr
is an array.
concat() Parameters
The concat()
method takes in an arbitrary number of arrays and/or values as arguments.
concat() Return Value
- Returns a newly created array after merging all arrays/values passed in the argument.
The concat()
method first creates a new array with the elements of the object on which the method is called. It then sequentially adds arguments or the elements of arguments (for arrays).
Example 1: Using concat() method
var languages1 = ["JavaScript", "Python", "Java"];
var languages2 = ["C", "C++"];
// concatenating two arrays
var new_arr = languages1.concat(languages2);
console.log(new_arr); // [ 'JavaScript', 'Python', 'Java', 'C', 'C++' ]
// concatenating a value and array
var new_arr1 = languages2.concat("Lua", languages1);
console.log(new_arr1); // [ 'C', 'C++', 'Lua', 'JavaScript', 'Python', 'Java' ]
Output
[ 'JavaScript', 'Python', 'Java', 'C', 'C++' ] [ 'C', 'C++', 'Lua', 'JavaScript', 'Python', 'Java' ]
Example 2: Concatenating nested arrays
The concat()
method returns the shallow copy of the concatenated elements in the following way:
- It copies object references to the new array. (For example: passing a nested array) So if the referenced object is modified, the changes are visible in the returned new array.
- It copies the value of strings and numbers to the new array.
var randomList = [1, 2, 3];
var randomNestedList = [
[4, 5],
[6, 7],
];
var combined = randomList.concat(randomNestedList);
console.log(combined); // [ 1, 2, 3, [ 4, 5 ], [ 6, 7 ] ]
// changing the value 1 to 0
randomList[0] = 0;
console.log(randomList); // [ 0, 2, 3 ]
// changes not reflected in concatenated array
console.log(combined); // [ 1, 2, 3, [ 4, 5 ], [ 6, 7 ] ]
// modifying nested list (adding 6 to first element)
randomNestedList[0].push(6);
console.log(randomNestedList); // [ [ 4, 5, 6 ], [ 6, 7 ] ]
// changes are reflected in concatenated array
// since it is a reference to the object
console.log(combined); // [ 1, 2, 3, [ 4, 5, 6 ], [ 6, 7 ] ]
Output
[ 1, 2, 3, [ 4, 5 ], [ 6, 7 ] ] [ 0, 2, 3 ] [ 1, 2, 3, [ 4, 5 ], [ 6, 7 ] ] [ [ 1, 2, 3 ], [ 6, 7 ] ] [ 1, 2, 3, [ 4, 5, 6 ], [ 6, 7 ] ]
Here, the nested array's reference is copied to the concatenated array. So, when we modify any of the references, the changes are reflected everywhere.
Recommended Readings: