Введение
В этом практическом занятии мы изучим функцию JavaScript, которая помогает найти все уникальные значения в массиве на основе предоставленной функции сравнения. Мы будем использовать методы Array.prototype.reduce() и Array.prototype.some() для создания нового массива, который будет содержать только первое уникальное вхождение каждого значения, на основе предоставленной функции сравнения. Это практическое занятие поможет вам глубже понять, как манипулировать массивами в JavaScript.
Поиск уникальных значений в массиве с использованием функции
Для нахождения всех уникальных значений массива укажите функцию сравнения.
Используйте Array.prototype.reduce() и Array.prototype.some(), чтобы создать массив, содержащий только первое уникальное вхождение каждого значения. Функция сравнения fn принимает два аргумента — значения двух элементов, которые сравниваются.
const uniqueElementsBy = (arr, fn) =>
arr.reduce((acc, v) => {
if (!acc.some((x) => fn(v, x))) acc.push(v);
return acc;
}, []);
Для тестирования функции используйте пример ниже:
uniqueElementsBy(
[
{ 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: 0, value: 'a' }, { id: 1, value: 'b' }, { id: 2, value: 'c' } ]
Начните практиковать программирование, открыв Терминал/SSH и введя node.
Резюме
Поздравляем! Вы завершили практическое занятие "Уникальные значения в массиве на основе функции". Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.