В TypeScript работа со списками и массивами — обычная задача. Часто нам необходимо манипулировать списками, чтобы гарантировать, что они содержат только уникальные элементы. В этой статье мы углубимся в различные методы и приемы достижения этой цели в TypeScript, используя разговорный язык и примеры кода. Итак, возьмите свой любимый напиток и начнем!
Метод 1: использование Set
Один простой подход — использовать структуру данных Set. Set — это объект, который допускает только уникальные значения. Мы можем преобразовать массив в набор, а затем преобразовать его обратно в массив.
const uniqueList = Array.from(new Set(originalList));
Метод 2: использование Array.filter() и Array.indexOf()
Другой метод предполагает использование функции filter()вместе с indexOf()для удаления повторяющихся элементов из список.
const uniqueList = originalList.filter((item, index) => originalList.indexOf(item) === index);
Метод 3: использование Array.reduce()
Метод reduce()можно использовать для создания нового списка с уникальными элементами. Мы проверяем, существует ли элемент в аккумуляторе, и добавляем его, если нет.
const uniqueList = originalList.reduce((accumulator, currentValue) => {
if (!accumulator.includes(currentValue)) {
accumulator.push(currentValue);
}
return accumulator;
}, []);
Метод 4: использование ключей объектов.
Мы можем использовать тот факт, что объекты в JavaScript/TypeScript могут иметь только уникальные ключи. Преобразовав список в объект, мы можем извлечь уникальные значения.
const uniqueList = Object.keys(
originalList.reduce((accumulator, currentValue) => {
accumulator[currentValue] = true;
return accumulator;
}, {})
);
Метод 5: использование lodash
Если вы предпочитаете библиотеку, lodash предоставляет удобный метод uniq(), который возвращает новый массив с уникальными элементами.
import { uniq } from 'lodash';
const uniqueList = uniq(originalList);
В этой статье мы рассмотрели несколько методов получения уникального списка в TypeScript. Мы рассмотрели методы использования наборов, фильтрации, сокращения, объектных ключей и даже такой популярной библиотеки, как lodash. У каждого метода есть свои преимущества, поэтому выберите тот, который подходит для вашего конкретного случая использования. Теперь вперед и победите эти повторяющиеся элементы в своих списках!