← Back to libraryQuestion 154 of 468
🧩JavaScript CodingBeginner

Remove Duplicates from an Array

📌 Definition:

Return a new array with duplicate values removed, preserving first-occurrence order.

📖 Detailed Explanation:

The idiomatic ES6 way uses a Set, which stores unique values: [...new Set(arr)]. For arrays of objects (deduping by a key) you use a Map or a seen-set of keys.

💻 Solutions:
const unique = (arr) => [...new Set(arr)];

// Dedupe objects by a key:
function uniqueBy(arr, key) {
  const seen = new Set();
  return arr.filter((o) => {
    if (seen.has(o[key])) return false;
    seen.add(o[key]);
    return true;
  });
}
🔑 Key Points:
  • [...new Set(arr)] dedupes primitives in O(n)
  • Set uses SameValueZero equality (NaN dedupes correctly)
  • Objects need dedupe-by-key (Set of references won't help)
  • Preserves insertion order
🌍 Real-World Example:

Deduping is common when merging test data from multiple sources or when a paginated API returns overlapping records.

🎯 Scenario-Based Interview Question:

[...new Set(users)] does NOT remove duplicate user objects. Why?