Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to combine two arrays in JavaScript

In this blog post, we'll explore various methods to combine two arrays in JavaScript. Combining arrays is a common task in programming, and it's essential to understand the different ways to do this in JavaScript.

We'll start with a brief introduction to arrays in JavaScript, followed by different techniques to merge them. We'll discuss the following methods:

  1. Concat method
  2. Spread operator
  3. Push.apply method
  4. forEach and push
  5. Array.from and map

Arrays in JavaScript

Arrays are used to store multiple values in a single variable. They are a type of data structure that can hold a collection of elements. In JavaScript, arrays are zero-indexed, meaning that the first element in the array has an index of 0, the second element an index of 1, and so on.

For example, let's say we have two arrays:

const fruits = ['apple', 'banana', 'cherry'];
const veggies = ['carrot', 'broccoli', 'spinach'];

Now, we want to combine these two arrays to create one single array:

const combined = ['apple', 'banana', 'cherry', 'carrot', 'broccoli', 'spinach'];

In the following sections, we'll explore different techniques to achieve this.

Method 1: Concat

The concat() method is used to merge two or more arrays together. This method does not change the existing arrays but returns a new array containing all the elements from the input arrays.

Here's how to use the concat() method:

const fruits = ['apple', 'banana', 'cherry'];
const veggies = ['carrot', 'broccoli', 'spinach'];

const combined = fruits.concat(veggies);

console.log(combined);
// Output: ['apple', 'banana', 'cherry', 'carrot', 'broccoli', 'spinach']

The concat() method is simple and easy to use. However, it might not be the most efficient method for merging large arrays, as it creates a new array each time it's called.

Method 2: Spread operator

The spread operator (...) was introduced in ES6 (ECMAScript 2015) and allows you to expand the elements of an array (or any other iterable) into individual elements. This can be helpful when merging arrays.

Here's how to use the spread operator:

const fruits = ['apple', 'banana', 'cherry'];
const veggies = ['carrot', 'broccoli', 'spinach'];

const combined = [...fruits, ...veggies];

console.log(combined);
// Output: ['apple', 'banana', 'cherry', 'carrot', 'broccoli', 'spinach']

The spread operator is a more modern way of merging arrays and can be more efficient than the concat() method. However, it might not be supported in older browsers without a transpiler like Babel.

Method 3: Push.apply

The push() method adds new items to the end of an array and returns the new length of the array. The apply() method is a built-in JavaScript function that allows you to call a function with a given this value and an array of arguments.

By using the push.apply() method, we can merge two arrays in the following way:

const fruits = ['apple', 'banana', 'cherry'];
const veggies = ['carrot', 'broccoli', 'spinach'];

Array.prototype.push.apply(fruits, veggies);

console.log(fruits);
// Output: ['apple', 'banana', 'cherry', 'carrot', 'broccoli', 'spinach']

This method modifies the original array (fruits in this case) and can be more efficient than the concat() method for large arrays. However, it's not as intuitive as the other methods and can lead to confusion for those new to programming.

Method 4: forEach and push

Another way to merge two arrays is by using the forEach() method to iterate through each element of the second array and then using the push() method to add those elements to the first array.

Here's how to do this:

const fruits = ['apple', 'banana', 'cherry'];
const veggies = ['carrot', 'broccoli', 'spinach'];

veggies.forEach(function(item) {
  fruits.push(item);
});

console.log(fruits);
// Output: ['apple', 'banana', 'cherry', 'carrot', 'broccoli', 'spinach']

This method is more straightforward than the push.apply() method but can be less efficient for large arrays, as it requires iterating through each element of the second array.

Method 5: Array.from and map

The Array.from() method creates a new array instance from an array-like or iterable object. The map() method creates a new array by calling a provided function on every element in the input array.

By combining these two methods, we can merge two arrays like this:

const fruits = ['apple', 'banana', 'cherry'];
const veggies = ['carrot', 'broccoli', 'spinach'];

const combined = Array.from(new Set([...fruits, ...veggies]));

console.log(combined);
// Output: ['apple', 'banana', 'cherry', 'carrot', 'broccoli', 'spinach']

This method is more efficient than the forEach() and push() method but can be more complicated for beginners to understand.

Conclusion

In this blog post, we've explored five different methods to combine two arrays in JavaScript. Each method has its advantages and disadvantages, so choose the one that best fits your needs and the specific situation.

For beginners, the concat() method and the spread operator are the easiest to understand, while more advanced users might prefer the push.apply() method or the Array.from() and map() method for better performance.

Whichever method you choose, understanding how to merge arrays in JavaScript is a fundamental skill that will help you in your programming journey.