Фильтр массива объектов в javascript, если хотя бы одно свойство из объекта равно свойству из другого объекта массива
Прошу помощи в сабже. Пример массива:
arr = [
{name: 'Ivan', surname: 'Ivanov'},
{name: 'Anton', surname: 'Ivanov'},
{name: 'Ivan', surname: 'Petrov'}
];
Отфильтровать по свойству name: 'Ivan' и вывести:
arr = [
{name: 'Ivan', surname: 'Ivanov'},
{name: 'Anton', surname: 'Ivanov'},
];
Прошу не готовое решение, а направить в нужное русло. Спасибо.
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
arr = [
{name: 'Ivan', surname: 'Ivanov'},
{name: 'Anton', surname: 'Ivanov'},
{name: 'Ivan', surname: 'Petrov'}
];
function filterByProp(arr, prop) {
var seen = {};
var result = arr.filter(item => {
if (seen[item[prop]]) {
return false;
} else {
seen[item[prop]] = true;
return true;
}
});
return result;
}
console.log(filterByProp(arr, "name"));