When working with arrays in JavaScript, you’ll often run into duplicate values. Removing them efficiently not only keeps your data clean but also makes your code more optimized. Let’s look at the most common ways of how to remove duplicates from a JavaScript array.
Set (ES6+)const numbers = [1, 2, 2, 3, 4, 4, 5];
const uniqueNumbers = [...new Set(numbers)];
console.log(uniqueNumbers); // [1, 2, 3, 4, 5] ✅ Simple and efficient
✅ Best for modern JavaScript
filter() + indexOf()const numbers = [1, 2, 2, 3, 4, 4, 5];
const uniqueNumbers = numbers.filter((value, index) =>
numbers.indexOf(value) === index
);
console.log(uniqueNumbers); // [1, 2, 3, 4, 5] ✅ Works everywhere
⚠️ Slightly slower on large arrays
reduce() + includes()const numbers = [1, 2, 2, 3, 4, 4, 5];
const uniqueNumbers = numbers.reduce((acc, value) => {
if (!acc.includes(value)) acc.push(value);
return acc;
}, []);
console.log(uniqueNumbers); // [1, 2, 3, 4, 5] ✅ Great for learning array methods
forEach() + Object Lookupconst numbers = [1, 2, 2, 3, 4, 4, 5];
const lookup = {};
const uniqueNumbers = [];
numbers.forEach(num => {
if (!lookup[num]) {
lookup[num] = true;
uniqueNumbers.push(num);
}
});
console.log(uniqueNumbers); // [1, 2, 3, 4, 5] ✅ Very fast for larger datasets
The Set method is the easiest and most modern solution, but depending on the scenario (browser support, performance needs), other approaches can still be useful.
How to remove duplicates from a JavaScript array is a common task with many solutions. The most modern and efficient method is using Set, while traditional methods like filter() + indexOf(), reduce() + includes(), or a lookup object offer alternatives depending on performance needs and project requirements. The key takeaway: JavaScript gives you multiple tools to keep your data clean—pick the one that best fits your use case.
Backpressure is a flow-control mechanism that prevents a fast data producer from overwhelming a slower data…
JavaScript collections are data structures used to store, organize, retrieve, and manipulate groups of values. Choosing…
Context poisoning is a technique where an attacker deliberately places misleading, malicious, or irrelevant information into…
React makes building user interfaces easier, but certain errors appear repeatedly, especially when working with…
The C programming language is a foundational, general-purpose computer programming language created by Dennis Ritchie at Bell Labs in 1972. Originally developed to…
What Is Homebrew? Homebrew is a package manager for macOS and Linux that makes it easy to…