Borislav Hadzhiev
Tue Oct 26 2021·2 min read
Photo by Nick Scheerbart
Use the splice()
method to remove the last 2 elements from an array, e.g.
arr.splice(arr.length - 2, 2)
. The splice
method will delete the 2 last
elements from the array and return a new array containing the deleted
elements.
// 👇️ With mutation const arr1 = ['one', 'two', 'three', 'four']; arr1.splice(arr1.length - 2, 2); console.log(arr1); // 👉️ ['one', 'two']
We used the Array.splice method to delete the last 2 elements from an array.
These are the 2
arguments we passed to the method:
0
, and the last an index of array.length - 1
.We used the array's length to calculate the start index. Our array has a
length of 4
, so by subtracting 2
from it, the splice
method starts
changing the array at index 2
(the third array element).
We removed 2
items, by setting the delete count parameter to 2
.
splice
method changes the contents of the original array. If you want to get a new array without the last 2
elements of the original array, you can use the slice
method instead.To remove the last 2 elements from an array, call the slice()
method,
passing it 0
and -2
as parameters. The slice
method will return a new
array containing the portion of the original array, without the last 2
elements.
// 👇️ Without mutations const arr2 = ['one', 'two', 'three', 'four']; const newArr = arr2.slice(0, -2); console.log(newArr); // 👉️ ['one', 'two'] console.log(arr2); // 👉️ ['one', 'two', 'three', 'four']
We passed the following parameters to the Array.slice method:
-2
means go up to, but not including the last 2 elements
of the array-2
and array.length - 2
is the same. We instruct the slice
method to go up to, but not including the last 2 elements in the array.The slice method does not mutate the original array, instead it returns a new array.
slice
method is my preferred approach because in my experience, mutations are very difficult to track throughout a code base, especially when changing the same array / object in different places.