Remove Duplicates from Array in JavaScript

A common task required in JavaScript when dealing with arrays is the ability to preserve the array and at the same time remove duplicates from the array.

Remove Duplicates from Array in ES5

If you required older browser support, here’s a solution that uses ES5’s Array.reduce() method to remove duplicates from an array:

let items = ['a', 1, 'a', 'beachfront', 'avenue']; let unique = items.reduce(function(a,b) { if (a.indexOf(b) < 0 ) { a.push(b); } return a; },[]); console.log(items); // ['a', 1, 'a', 'beachfront', 'avenue'] console.log(unique); // ['a', 1, 'beachfront', 'avenue']

Remove Duplicates from Array in ES6

Starting with ES6, doing this is much easier using the new Set() constructor. The following example uses Set() along with ES6’s spread operator to remove duplicates from an array:

let items = ['a', 1, 'a', 'beachfront', 'avenue']; let unique = [...new Set(items)]; console.log(items); // ['a', 1, 'a', 'beachfront', 'avenue'] console.log(unique); // ['a', 1, 'beachfront', 'avenue']

Solutions for More Complex Examples

Some solutions to this require more complex code. For example, what if you want to remove two objects that are identical? Or what if you want to sort the items while removing the duplicates? These are beyond the scope of this brief snippet, but you can view the following Stack Overflow threads for a number of different answers that work in older browsers:

Note: To the best of our knowledge, the information above and the snippet are accurate and up to date. However, in case you notice something wrong, please report snippet or leave a comment below.
Back to SnippetsShow Comments

Or start the conversation in our Facebook group for WordPress professionals. Find answers, share tips, and get help from other WordPress experts. Join now (it’s free)!