Удалить дубликаты массивов в Javascript

Недавно я работал над проектом, использующим сторонний API, который возвращал дубликаты в некоторых возвращаемых массивах, и мне нужно было удалить из них дубликаты.

Я счел целесообразным написать, как я решил эту проблему, на случай, если кто-то еще столкнется с этой проблемой.

Использование функции Javascript SET

Объект Set позволяет хранить уникальные значения любого типа, будь то примитивные значения или ссылки на объекты..

Все, что нам нужно сделать, это инициализировать новый набор и передать требуемый массив, который нам нужен для удаления дубликатов, как показано ниже.

const array = ["ade", "kemi", "bose", "esther", "felele", "ade"];

const uniqeSet = new Set(array);

/* this by default returns back an object of the unique value passed in the array    * above which we can spread in an array.
*/

// Set {"ade", "kemi", "bose", "esther", "felele"}

const arrayResponse = [...uniqeSet];

// ["ade", "kemi", "bose", "esther", "felele"]

В качестве альтернативы вы также можете использовать Array.from() для преобразования вашего объекта в массив.

Метод Array.from() создает новый неглубоко скопированный экземпляр Array из массивоподобного или итерируемого объекта.

Использование функции ФИЛЬТР Javascript

Метод filter() создает массив, заполненный всеми элементами массива, прошедшими тест (предоставляется как функция).
Это означает, что как только набор условий будет передан, он будет включен в массив.

Фильтр также позволяет передавать некоторые другие параметры, такие как параметр индекса, который возвращает позицию элемента массива.

Например.

const arrays = ["ade", "kemi", "bose", "esther", "felele", "ade"];

const uniqueArray = arrays.filter(
  (array, index) => arrays.indexOf(array) === index
); 
// ["ade", "kemi", "bose", "esther", "felele"]

Использование функции уменьшения Javascript

Этот подход требует, чтобы мы уменьшали элементы массива, а затем суммировали результаты в окончательный массив на основе переданной функции редуктора.

Например.

const arrayData = ["ade", "kemi", "bose", "esther", "felele", "ade"];

const arrResponse = arrayData.reduce((uniqeValue, item) => 

uniqeValue.includes(item) ? uniqeValue : [...uniqeValue, item], []);

console.log(arrResponse)
// ["ade", "kemi", "bose", "esther", "felele"]

И мы закончили. Надеюсь это поможет.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *