remove duplicates
from an array
[ filter | indexOf ]

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 ↴

filter() method → creates a new array filled with elements that pass a test provided by a function.

indexOf() method → returns the first index at which a given element can be found in an array.


filter() method iterates over each element of an array.

It creates and returns a new array containing only the elements that pass a test provided by a function.

Return a new array with values greater than 4

const arr2 = [1, 2, 3, 4, 5, 6, 7, 8, 9];

arr2.filter((num) => num > 4); returns ↴

[5, 6, 7, 8, 9] → numbers greater than 4


indexOf() method returns the first index at which a given element can be found in an array, or -1 if it is not present.

Find first index of element 6 in the array.

const arr3 = [2, 4, 6, 8, 6, 4];

arr3.indexOf(6); returns ↴

2 → index of first occurrence of element 6

Element is present.

Find first index of element 9 in the array.

const arr4 = [2, 4, 6, 8, 6, 4];

arr4.indexOf(9); returns ↴

-1 → element 9 NOT found in array.

Element NOT present.

array.indexOf(element) !== -1

If result is NOT -1 then the element is present in the 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. The original array remain unchanged.

filter() method creates a new array with all elements that pass the test implemented by the callback function.

arr.filter(callbackFn)

callback function ↴

(element, index) => arr.indexOf(element) === index

element current element being processed in the array.

index index of the current element being processed in the array.

Check if the index of the first occurrence of element matches the current index

arr.indexOf(element) === index

If they match, the value is unique at that point in the array, and it is included in the new array.


Call the function with ↴

removeDuplicates(array1);


Remove duplicates from array.

const arr = [1, 2, 1, 2, 4, 3, 2, 1]

arr.indexOf(element) === index

indexOf(element) returns the first index at which a given element can be found in an array.

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

If they match, it means the value is unique at that point in the array, and it is included in the new array.

Iteration ↴

0 indexOf(1) 0 === index 0 1

1 indexOf(2) 1 === index 1 2

2 indexOf(1) 0 === index 2

3 indexOf(2) 1 === index 3

4 indexOf(4) 4 === index 4 4

5 indexOf(3) 5 === index 5 3

6 indexOf(2) 1 === index 6

7 indexOf(1) 0 === index 7

returns ↴

[1, 2, 4, 3] No duplicate values.

All values are unique.


Remove duplicates from array.

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

function removeDuplicates(arr) {

return arr.filter((element, index) => arr.indexOf(element) === index);

}

call function

removeDuplicates(array1); returns ↴

[1, 2, 4, 3]

Remove duplicates from an array