remove duplicates
from an array
[ Set ]

Remove duplicates from an array

Write a function that takes an array and returns a new array with all duplicate values removed.


Example ...

Enter an array ...

[1, 2, 1, 2, 4, 3, 2, 1] original array

[1, 2, 4, 3] → array with duplicates removed

The new array contains unique values only. The original array is unchanged.

Arrays are used to store multiple values in a single variable.

Each value is called an element, and each element has a numeric position in the array, known as its index.

Arrays are zero-indexed, meaning the first element is at index 0, the second at index 1, and so on.

Arrays can contain any data type, including numbers, strings, and objects.

const arr1 = [2, 4, 6]; array

arr1[0]; element at index 0 → 2

arr1[1]; element at index 1 → 4

arr1[2]; element at index 2 → 6

arr1[3]; element at index 3 → undefined index not found


Strings are a sequence of zero or more characters written inside quotes used to represent text.

Strings may consist of letters, numbers, symbols, words, or sentences.

Strings are immutable, they cannot be changed.

Each character in a string has an index.

The first character will be index 0 the second character will be index 1 and so on.

There are two ways to access an individual character in a string.

charAt() method

const str1 = "abc"; string

str1.charAt(0); character at index 0 → "a"

str1.charAt(1); character at index 1 → "b"

str1.charAt(2); character at index 2 → "c"

str1.charAt(3); character at index 3 → "" index not found

Alternatively use at() or slice() methods

bracket notation []

const str2 = "abc"; string

str2[0]; character at index 0 → "a"

str2[1]; character at index 1 → "b"

str2[2]; character at index 2 → "c"

str2[3]; character at index 3 → undefined index not found


Numbers are used to represent both integer and floating-point values.

Numbers are most commonly expressed in literal forms like 255 or 3.14159 ↴

let num1 = 5; → number

let num2 = 2.5; → number

let num3 = num1 + num2;

console.log(num3); returns ↴

7.5 → number


Remove duplicates from an array using ↴

Set Object → collection of unique values.

spread syntax ... → converts a Set into an array.


Set Object is a collection of unique values.

Each value can only occur once, each value is unique.

const mySet = new Set();

console.log(mySet); returns ↴

Set(0) {size: 0} → empty Set

To add values to the Set we can use the add() method.

mySet.add("a");

mySet.add("b");

mySet.add("c");

console.log(mySet); returns ↴

Set(3) {"a", "b", "c"} → values added

Try to add a duplicate value.

mySet.add("c"); character "c" is already in mySet

console.log(mySet); returns ↴

Set(3) {"a", "b", "c"} → no change

To determine if mySet has an element present we can use the has() method.

mySet.has("a"); true

mySet.has("d"); false


spread syntax ... unpacks the elements of an iterable object, like arrays.

Remove duplicates from array ↴

const arr2 = [1, 2, 3, 4, 1, 2, 3, 4];

const setA = new Set(arr2); set

const arr3 = [...setA]; spread syntax

console.log(arr3); returns ↴

[1, 2, 3, 4] → array

same as ↴

const arr4 = [1, 2, 3, 4, 1, 2, 3, 4];

[...new Set(arr4)]; returns ↴

[1, 2, 3, 4] → array


Initialize an array from which to remove duplicates.

const array1 = [1, 2, 1, 2, 4, 3, 2, 1]; → user input


Define a function removeDuplicates to return a new array with all duplicates removed.

function removeDuplicates(arr) {}

The function takes an array as input arr and returns a new array with all duplicate values removed.

Set constructor creates a new Set from the input array arr

new Set(arr)

Each element in the Set will be unique.

spread operator ... converts the Set back into an array.

Return the array with duplicates removed.

return [...new Set(arr)]


Call the function with ↴

removeDuplicates(array1);


Remove duplicates from array.

const array1 = [1, 2, 1, 2, 4, 3, 2, 1];

function removeDuplicates(arr) {

return [...new Set(arr)];

}

call function

removeDuplicates(array1); returns ↴

[1, 2, 4, 3]


Alternative ↴

Use Array.from instead of spread syntax.

return [...new Set(arr)];

return Array.from(new Set(arr));

Remove duplicates from an array