Last updated: Oct 26, 2021
Photo from Unsplash
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
// 👇️ 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
4, so by subtracting
2 from it, the
splice method starts
changing the array at index
2 (the third array element).
2 items, by setting the delete count parameter to
splicemethod changes the contents of the original array. If you want to get a new array without the last
2elements of the original array, you can use the
To remove the last 2 elements from an array, call the
-2 as parameters. The
slice method will return a new
array containing the portion of the original array, without the last 2
// 👇️ 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:
-2means go up to, but not including the last 2 elements of the array
array.length - 2is the same. We instruct the
slicemethod 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.
slicemethod 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.