How to Splice Duplicate Item from JavaScript Array?
Last Updated :
19 Jul, 2024
Given an array of numbers or strings containing some duplicate values, the task is to remove these duplicate values from the array without creating a new array or storing the duplicate values anywhere else.
Examples:
Input: arr = [1, 2, 3, 4, 3, 2, 1];
Output: [1,2,3,4]
Input: [1, 4, 6, 1, 2, 5, 2, 1, 6, 8, 7, 5];
Output: [4, 1, 5, 2, 6, 8, 7]
Using indexOf and splice method
The indexOf() method returns the first index at which a given element can be found in the array, or -1 if it is not present. By iterating through the array and checking each element's index, we can identify duplicates and splice them out.
Example: Implementation of a program to splice duplicate items in an array using the splice method.
JavaScript
function removeDupes(arr) {
for (let i = 0; i < arr.length; i++) {
while (arr.indexOf(arr[i], i + 1) !== -1) {
arr.splice(arr.indexOf(arr[i], i + 1), 1);
}
}
return arr;
}
const arr = [3, 4, 2, 4, 5, 6, 3, 2, 1, 2, 7, 8];
const uniqueArr = removeDupes(arr);
console.log(uniqueArr);
Output[
3, 4, 2, 5,
6, 1, 7, 8
]
Time Complexity: O(n^2)
Space Complexity: O(1)
Using Set
This approach efficiently removes duplicate elements from an array by leveraging the set's inherent uniqueness property, ensuring each element occurs only once. Through iteration and set membership checks, duplicates are identified and removed, resulting in a unique array with no repeated elements.
Example: Implementation of program to splice duplicate item in array using set
JavaScript
const arr = [1, 4, 6, 1, 2, 5, 2, 1, 6, 8, 7, 5];
const uniqueSet = new Set();
for (let i = 0; i < arr.length; i++) {
const el = arr[i];
if (uniqueSet.has(el)) {
arr.splice(i, 1);
i--;
} else {
uniqueSet.add(el);
}
}
console.log(arr);
Output[
1, 4, 6, 2,
5, 8, 7
]
Time Complexity: O(n^2)
Space Complexity: O(n)
Using reduce() method
In this approach we are using the reduce method. This applies a function against an accumulator and each element in the array to reduce it to a single value. Here the accumulator is an array that initially is empty. For each element in the original array, if the accumulator doesn't already include that element, it will be added to the accumulator.
Example: Implementation of program to splice duplicate item in array using reduce() method.
JavaScript
let array = [1, 2, 3, 4, 2, 3, 5];
let uniqueArray = array.reduce((accumulator, currentValue) => {
if (!accumulator.includes(currentValue)) {
accumulator.push(currentValue);
}
return accumulator;
}, []);
console.log(uniqueArray);
Using filter() Method
In this approach, we can use the filter() method to remove duplicate values from an array. The filter() method creates a new array with all elements that pass the test implemented by the provided function. In this case, we'll use indexOf to check if the current element's index matches its first occurrence in the array.
Example: Implementation of a program to remove duplicate items in an array using the filter() method.
JavaScript
let arr = [1, 4, 6, 1, 2, 5, 2, 1, 6, 8, 7, 5];
arr = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(arr); // Output: [1, 4, 6, 2, 5, 8, 7]
Output[
1, 4, 6, 2,
5, 8, 7
]
Using Two Pointers Technique
The Two Pointers technique is a common approach to solving array problems without using additional space. Here, we'll use two pointers to traverse the array and remove duplicates in place.
Example: The below example demonstrates how to remove duplicate values from an array using the Two Pointers technique.
JavaScript
function removeDuplicates(arr) {
if (arr.length <= 1) return arr;
let i = 0;
for (let j = 1; j < arr.length; j++) {
if (arr[i] !== arr[j]) {
i++;
arr[i] = arr[j];
}
}
// Splice the remaining duplicates after the unique elements
arr.splice(i + 1);
return arr;
}
let arr = [1, 2, 3, 4, 3, 2, 1];
console.log(removeDuplicates(arr));
let arr2 = [1, 4, 6, 1, 2, 5, 2, 1, 6, 8, 7, 5];
console.log(removeDuplicates(arr2));
Output[
1, 2, 3, 4,
3, 2, 1
]
[
1, 4, 6, 1, 2,
5, 2, 1, 6, 8,
7, 5
]
Similar Reads
How to Remove duplicate elements from array in JavaScript ? In this article, we will discuss the methods to remove duplicate elements from a Javascript array. There are various methods to remove duplicates in the array. These are the following ways: Table of Content Using filter() MethodUsing set() MethodUsing forEach() MethodUsing reduce() MethodUsing index
4 min read
How to Remove Duplicate Objects from an Array in JavaScript? In JavaScript, it's a common example that the arrays contain objects and there might be a possibility that the objects may or may not be unique. Removing these duplicate objects from the array and getting the unique ones is a common task in Web Development. These are the following approaches: Table
2 min read
How to Remove Duplicates in JSON Array JavaScript ? In JavaScript, removing duplicates from a JSON array is important for data consistency and efficient processing. We will explore three different approaches to remove duplicates in JSON array JavaScript. Use the methods below to remove Duplicates in JSON Array JavaScript. Table of Content Using SetUs
3 min read
How to Remove Duplicates from an Array of Objects in JavaScript? Here are some effective methods to remove duplicates from an array of objects in JavaScript1. Using filter() and findIndex() Methods - Most UsedThe simplest way to remove duplicates is by using filter() and findIndex(). This method keeps the first occurrence of each object with a unique property (li
3 min read
How to Remove a Specific Item from an Array in JavaScript ? Given an Array, the task is remove specific item from an array in JavaScript. It means we have an array with N items, and remove a particular item from array.ExamplesInput: Arr = [ 10, 20, 30, 40, 50, 60 ] removeItem = 40 Output: [ 10, 20, 30, 50, 60 ]Table of ContentUsing splice() MethodUsing filte
3 min read
JavaScript - Replace an Item from JS Array These are the following ways to replace an item from the JS array: 1. Using Array IndexingThe Array Indexing approach replaces an item in an array by directly accessing its position using the index and assigning a new value. This method is straightforward, modifies the original array, and is ideal f
2 min read