Array Methods
JavaScript provides a variety of methods that can be used to manipulate arrays.
These methods can be used to add, remove, and replace elements in an array, merge arrays, flatten arrays, and more.
In this tutorial, we'll explore the methods available to manipulate arrays in JavaScript.
Let's first take a look at the methods that can be used to convert an array to a string.
Converting Arrays to Strings
You can convert an array to a string using the toString() method. This method converts each element of the array to a string, separates them with commas, and returns a single string.
As an example:
let fruits = ["apple", "banana", "orange"];
let fruitsString = fruits.toString();
console.log(fruitsString); // 'apple,banana,orange'
You can also use the join() method to convert an array to a string with a specified separator.
The join() method takes a separator as an argument and returns a string that separates each element of the array with the specified separator.
let fruits = ["apple", "banana", "orange"];
let fruitsString = fruits.join(" | ");
console.log(fruitsString); // 'apple | banana | orange'
In this example:
- We use the
join()method to convert thefruitsarray to a string with a pipe symbol (|) as the separator. - The resulting string is
'apple | banana | orange'.
Popping and Pushing
push() and pop() are methods used to add and remove elements from the end of an array, respectively.
JavaScript Array push()
The push() method adds one or more elements to the end of an array and returns the new length of the array.
As an example:
let fruits = ["apple", "banana"];
let length = fruits.push("orange", "mango");
console.log(length); // 4
console.log(fruits); // ['apple', 'banana', 'orange', 'mango']
In this example:
- We use the
push()method to add the elements'orange'and'mango'to the end of thefruitsarray. - The
push()method returns the new length of the array, which is4.
Array pop()
The pop() method removes the last element from an array and returns that element.
As an example:
let fruits = ["apple", "banana", "orange", "mango"];
let lastFruit = fruits.pop();
console.log(lastFruit); // 'mango'
console.log(fruits); // ['apple', 'banana', 'orange']
In this example:
- We use the
pop()method to remove the last element ('mango') from the fruits array. - The
pop()method returns the removed element, which is'mango'.
Note that push() and pop() change the original array directly. To avoid modifying the original array, use slice() to make a copy and use push() and pop() on the copied array.
Shifting Elements
In JavaScript, there are several methods that allow you to shift the elements of an array.
These methods are:
Array shift()
The shift() method is a JavaScript array method that removes the first element from an array and returns the removed element.
The remaining elements in the array are shifted down by one index.
As an example:
let numbers = [1, 2, 3];
let firstNumber = numbers.shift();
console.log(firstNumber); // 1
console.log(numbers); // [2, 3]
In this example:
- We have an array of numbers (
[1, 2, 3]). - We use the
shift()method to remove the first element (1) and assign it to thefirstNumbervariable. Theshift()method modifies the original array, so after it's called, thenumbersarray contains only[2, 3].
If the array is empty, shift() returns undefined and it can have unintended consequences like other methods that modify the original array.
Array unshift()
The unshift() method is a JavaScript array method that adds one or more elements to the beginning of an array and returns the new length of the array.
The existing elements in the array are shifted to higher indexes to make room for the new elements.
As an example:
let numbers = [1, 2, 3];
let newLength = numbers.unshift(0, -1);
console.log(newLength); // 5
console.log(numbers); // [0, -1, 1, 2, 3]
In this example:
- We have an array of numbers (
[1, 2, 3]). - We use the
unshift()method to add the elements0and-1to the beginning of the array. - The
unshift()method returns the new length of the array, which is 5. - After the method is called, the
numbersarray contains[0, -1, 1, 2, 3].
Changing Elements
You can change the value of an element in a JavaScript array by accessing the element using its index and assigning a new value to it.
As an example:
let fruits = ["apple", "banana", "orange"];
console.log(fruits); // ['apple', 'banana', 'orange']
fruits[1] = "pear";
console.log(fruits); // ['apple', 'pear', 'orange']
In this example:
- We have an array of fruits (
['apple', 'banana', 'orange']). - We use square brackets (
[]) and the index1to access the second element in the array ('banana') and assign the new value'pear'to it. - The resulting array is
['apple', 'pear', 'orange'].
JavaScript arrays are zero-indexed, so the first element has an index of 0, the second has an index of 1, and so on. In the given example, index 1 refers to the second element ('banana').
Array length
The length property of a JavaScript array returns the number of elements in the array.
You can use this property to check the size of an array or to resize the array by setting its value.
Here's an example of using the length property to check the size of an array:
let numbers = [1, 2, 3, 4, 5];
console.log(numbers.length); // 5
In this example:
- We have an array of numbers (
[1, 2, 3, 4, 5]). - We use the
lengthproperty to determine the number of elements in the array, which is5.
Here's an example of using the length property to resize an array:
let numbers = [1, 2, 3];
console.log(numbers.length); // 3
numbers.length = 5;
console.log(numbers); // [1, 2, 3, undefined, undefined]
console.log(numbers.length); // 5
numbers.length = 2;
console.log(numbers); // [1, 2]
console.log(numbers.length); // 2
In this example:
- We start with an array of numbers (
[1, 2, 3]) and use thelengthproperty to resize the array to5elements. - The new elements have the value
undefined. - We then resize the array back to
2elements, discarding the last3elements.
Array delete()
The delete operator in JavaScript can be used to remove an element from an array. However, it's important to note that this method does not actually change the length of the array, it simply sets the value of the deleted element to undefined.
As an example:
let fruits = ["apple", "banana", "orange"];
console.log(fruits); // ['apple', 'banana', 'orange']
delete fruits[1];
console.log(fruits); // ['apple', undefined, 'orange']
console.log(fruits.length); // 3
In this example:
- We have an array of fruits (
['apple', 'banana', 'orange']). - We use the
deleteoperator to remove the second element in the array (which has an index of1). - The resulting array is
['apple', undefined, 'orange']. - Note that the length of the array is still
3.
Merging (Concatenating) Arrays
You can concatenate (merge) two or more arrays using the concat() method.
The concat() method does not modify the original arrays, but instead returns a new array that contains the elements of the original arrays.
As an example:
let numbers1 = [1, 2, 3];
let numbers2 = [4, 5, 6];
let mergedNumbers = numbers1.concat(numbers2);
console.log(mergedNumbers); // [1, 2, 3, 4, 5, 6]
In this example:
- We have two arrays
numbers1andnumbers2. - We use the
concat()method to concatenate the two arrays and store the result in a new array calledmergedNumbers. - The resulting array contains all the elements from both arrays.
You can also use the concat() method to concatenate more than two arrays:
let numbers1 = [1, 2, 3];
let numbers2 = [4, 5, 6];
let numbers3 = [7, 8, 9];
let mergedNumbers = numbers1.concat(numbers2, numbers3);
console.log(mergedNumbers); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
In this example:,
- We have three arrays
numbers1,numbers2, and numbers3. - We use the
concat()method to concatenate all three arrays and store the result in a new array calledmergedNumbers. - The resulting array contains all the elements from all three arrays.
Note that the concat() method does not modify the original arrays, so the original arrays remain unchanged after concatenation.
Flattening an Array
To flatten a multi-dimensional array to a one-dimensional array in JavaScript, use the flat() method.
It creates a new flattened array with a specified depth (default is 1).
As an example:
let multiDimensionalArray = [1, [2, 3], [4, [5, 6]]];
let flattenedArray = multiDimensionalArray.flat();
console.log(flattenedArray); // [1, 2, 3, 4, 5, 6]
In this example:
- We have a multi-dimensional array
multiDimensionalArray. - We use the
flat()method to flatten the array to a depth of 1 and store the result in a new array calledflattenedArray. - The resulting array contains all the elements from the multi-dimensional array in a single dimension.
You can also specify a depth level for the flat() method:
let multiDimensionalArray = [1, [2, [3, 4]], [5, [6, 7]]];
let flattenedArray = multiDimensionalArray.flat(2);
console.log(flattenedArray); // [1, 2, 3, 4, 5, 6, 7]
In this example:
- We have a multi-dimensional array
multiDimensionalArray. - We use the
flat()method to flatten the array to a depth of 2 and store the result in a new array calledflattenedArray. - The resulting array contains all the elements from the multi-dimensional array in a single dimension up to a depth of 2.
Note that the flat() method creates a new array and does not modify the original array.
Array splice()
The splice() method is a powerful and versatile method for manipulating arrays in JavaScript.
It allows you to add, remove, and replace elements in an array.
The basic syntax of the splice() method is as follows:
array.splice(index, count, item1, item2, ..., itemX)
- index: The index at which to start changing the array.
- count: The number of elements to remove starting from the index. If 0, no elements are removed.
item1,item2, ...,itemX: The elements to add to the array, starting at the index.
Examples of using the splice() method:
Removing Elements from an Array
let fruits = ["apple", "banana", "cherry", "date"];
fruits.splice(2, 1); // Removes 1 element at index 2 ("cherry")
console.log(fruits); // ["apple", "banana", "date"]
In this example:
- The
splice()method is used to remove one element at index2from thefruitsarray.
Adding Elements to an Array
let fruits = ["apple", "banana", "cherry", "date"];
fruits.splice(2, 0, "orange", "kiwi"); // Adds "orange" and "kiwi" at index 2
console.log(fruits); // ["apple", "banana", "orange", "kiwi", "cherry", "date"]
In this example:
- The
splice()method is used to add the elements"orange"and"kiwi"to the fruits array at index2.
Replacing Elements in an Array
let fruits = ["apple", "banana", "cherry", "date"];
fruits.splice(2, 1, "orange", "kiwi"); // Replaces 1 element at index 2 with "orange" and "kiwi"
console.log(fruits); // ["apple", "banana", "orange", "kiwi", "date"]
In this example:
- The
splice()method is used to replace one element at index2in the fruits array with the elements"orange"and"kiwi".
Note that the splice() method modifies the original array and returns an array of the removed elements (if any).
JavaScript Array slice()
The slice() method in JavaScript returns a new array that contains a portion of the original array, starting from the specified start index and extending up to (but not including) the specified end index.
The original array is not modified.
The basic syntax of the slice() method is as follows:
array.slice(startIndex, endIndex);
Here:
startIndexis the index at which the slice should begin (inclusive) andendIndexis the index at which the slice should end (exclusive).- If endIndex is not specified, the slice will include all elements from the
startIndexto the end of the array.
Here are some examples of using the slice() method:
Slicing a portion of an array
const arr = [1, 2, 3, 4, 5];
const slicedArr = arr.slice(1, 4);
console.log(slicedArr); // [2, 3, 4]
console.log(arr); // [1, 2, 3, 4, 5]
In this example:
- The
slice()method is used to create a new array that contains elements from the originalarrarray, starting from index1and up to (but not including) index4. - The resulting
slicedArrarray contains the elements[2, 3, 4], and the originalarrarray remains unchanged.
Slicing an array from a starting index to the end
const arr = [1, 2, 3, 4, 5];
const slicedArr = arr.slice(2);
console.log(slicedArr); // [3, 4, 5]
console.log(arr); // [1, 2, 3, 4, 5]
In this example:
- The
slice()method is used to create a new array that contains elements from the originalarrarray, starting from index2and up to (but not including) the end of the array. - The resulting
slicedArrarray contains the elements[3, 4, 5], and the originalarrarray remains unchanged.
Creating a shallow copy of an array
const arr = [1, 2, 3, 4, 5];
const copyArr = arr.slice();
console.log(copyArr); // [1, 2, 3, 4, 5]
console.log(arr); // [1, 2, 3, 4, 5]
In this example:,
- The
slice()method is used to create a new array that is a shallow copy of the originalarrarray. - Since no start or end indices are provided, the resulting
copyArrarray contains all elements from the originalarrarray. Both arrays are identical.
Automatic toString()
Every object has a toString() method that converts the object to a string representation.
When this method is called on an array, it returns a string that consists of the array elements separated by commas.
const arr = [1, 2, 3, 4, 5];
console.log(arr.toString()); // "1,2,3,4,5"
In the example above:
- The
toString()method is called on thearrarray, which returns a string that represents the array elements separated by commas.
The toString() method is automatically called when an array is used in a string context. As an example:
const arr = [1, 2, 3, 4, 5];
const str = "The array is: " + arr;
console.log(str); // "The array is: 1,2,3,4,5"
In the example above:
- The
arrarray is used in a string concatenation operation. - When the array is concatenated with the string
"The array is: ", thetoString()method is automatically called on thearrarray, which returns a string that represents the array elements separated by commas. The resulting string is"The array is: 1,2,3,4,5".