Уникальные значения в массиве на основе функции

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы изучим функцию 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, чтобы улучшить свои навыки.