JavaScript provides various methods to remove an item from an array. In this article, we will explore the canonical approach as well as other options using plain JavaScript.
Here are a few ways to remove an item from an array using JavaScript:
-
By Index: If you know the index of the item you want to remove, you can use the
slice()
method to create a new array without mutating the original one.const items = ['a', 'b', 'c', 'd', 'e', 'f']; const i = 2; const filteredItems = items.slice(0, i).concat(items.slice(i + 1, items.length)); // Result: ["a", "b", "d", "e", "f"]
Here, we create a new array by concatenating two slices of the original array before and after the index to be removed.
-
By Value: If you know the value of the item you want to remove, you can use the
filter()
method for a more declarative approach.const items = ['a', 'b', 'c', 'd', 'e', 'f']; const valueToRemove = 'c'; const filteredItems = items.filter(item => item !== valueToRemove); // Result: ["a", "b", "d", "e", "f"]
This approach uses arrow functions introduced in ES6. You can also use traditional functions for older browser support or transpile the code using Babel for wider compatibility.
-
Removing Multiple Items:
-
By Index: To remove multiple items using their indexes, you can create a function that removes items one by one.
const items = ['a', 'b', 'c', 'd', 'e', 'f']; const removeItem = (items, i) => items.slice(0, i - 1).concat(items.slice(i, items.length)); let filteredItems = removeItem(items, 3); filteredItems = removeItem(filteredItems, 5); // Result: ["a", "b", "d", "e"]
-
By Value: To remove multiple items using their values, you can search for inclusion inside the callback function.
const items = ['a', 'b', 'c', 'd', 'e', 'f']; const valuesToRemove = ['c', 'd']; const filteredItems = items.filter(item => !valuesToRemove.includes(item)); // Result: ["a", "b", "e", "f"]
-
It is important to avoid mutating the original array. The splice()
method should be avoided as it mutates the original array.