How to Remove a Specific Item from an Array in JavaScript

Sep 21, 2023  • Javascript

JavaScript is a versatile programming language used for web development and more. If you’ve ever wondered how to remove a specific item from an array in JavaScript without using any frameworks, you’ve come to the right place. In this article, we’ll explore a straightforward method to achieve this task using core JavaScript.

The Problem Statement

Imagine you have an array and want to remove a particular value from it. You might think there’s a dedicated remove() method in JavaScript, but unfortunately, there isn’t. So, how do you remove that specific value from your array efficiently?

Let’s break down the problem and solution step by step:

The Solution

To remove a specific item from an array in JavaScript, you can use the indexOf() method to find the index of the item you want to remove, and then use the splice() method to remove it. Here’s how it works:

const array = [2, 5, 9];

// Find the index of the item you want to remove
const index = array.indexOf(5);

// Check if the item was found
if (index > -1) {
  // Use splice to remove the item (second parameter: 1 means remove one item)
  array.splice(index, 1);
}

// Now, the array will be [2, 9]
console.log(array);

In this example, we start with an array [2, 5, 9]. We want to remove the value 5. First, we use indexOf(5) to find its index in the array, which is 1. Then, we use splice(index, 1) to remove one element at the specified index. Afterward, the array contains [2, 9].

Handling Multiple Occurrences

If you need to remove all occurrences of a specific value from an array, you can create a function for that as well. Here are two functions, one to remove a single occurrence and another to remove all occurrences of a value:

function removeItemOnce(arr, value) {
  const index = arr.indexOf(value);
  if (index > -1) {
    arr.splice(index, 1);
  }
  return arr;
}

function removeItemAll(arr, value) {
  let i = 0;
  while (i < arr.length) {
    if (arr[i] === value) {
      arr.splice(i, 1);
    } else {
      i++;
    }
  }
  return arr;
}
  • removeItemOnce: This function removes the first occurrence of the specified value in the array.
  • removeItemAll: This function removes all occurrences of the specified value in the array.

Here’s how you can use these functions:

const array = [2, 5, 9, 1, 5, 8, 5];

// Removes the first 5: [2, 9, 1, 5, 8, 5]
console.log(removeItemOnce(array, 5));

// Removes all 5s: [2, 9, 1, 8]
console.log(removeItemAll(array, 5));

Type Safety in TypeScript

If you’re using TypeScript, you can ensure type safety for these functions by adding a type parameter:

function removeItem<T>(arr: Array<T>, value: T): Array<T> {
  const index = arr.indexOf(value);
  if (index > -1) {
    arr.splice(index, 1);
  }
  return arr;
}

With this TypeScript version, you can pass arrays of any type and remove items of the same type safely.

Conclusion

Removing a specific item from an array in JavaScript is a common task, and you can achieve it using the indexOf() and splice() methods. Whether you need to remove a single occurrence or all occurrences of a value, you now have the tools to do so efficiently with core JavaScript.