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