Введение
В этом практическом занятии мы изучим функцию JavaScript, которая фильтрует неуникальные значения массива на основе предоставленной функции сравнения. Используя Array.prototype.filter() и Array.prototype.every(), мы создадим новый массив, содержащий только уникальные значения на основе функции сравнения. Эта лабораторная работа направлена на улучшение вашего понимания методов массивов JavaScript и способов их использования для манипуляции данными.
Фильтрация неуникальных значений массива с использованием функции
Для начала практики программирования откройте Терминал/SSH и введите node.
Этот код фильтрует неуникальные значения из массива на основе предоставленной функции сравнения. Вот шаги, чтобы достичь этого:
- Используйте
Array.prototype.filter()иArray.prototype.every()для создания нового массива с только уникальными значениями на основе функции сравненияfn. - Функция сравнения принимает четыре аргумента: значения двух элементов, которые сравниваются, и их индексы.
- Функция
filterNonUniqueByреализует вышеперечисленные шаги и возвращает массив уникальных значений.
const filterNonUniqueBy = (arr, fn) =>
arr.filter((v, i) => arr.every((x, j) => (i === j) === fn(v, x, i, j)));
Вот пример использования этой функции:
filterNonUniqueBy(
[
{ id: 0, value: "a" },
{ id: 1, value: "b" },
{ id: 2, value: "c" },
{ id: 1, value: "d" },
{ id: 0, value: "e" }
],
(a, b) => a.id === b.id
); // [ { id: 2, value: 'c' } ]
Этот код прост, понятен и последователен и должен работать, как ожидается.
Резюме
Поздравляем! Вы завершили практическую работу "Фильтрация неуникальных значений массива с использованием функции". Вы можете выполнить больше практических работ в LabEx, чтобы улучшить свои навыки.