source.filter(obj => !uniqIds[obj.id] && (uniqIds[obj.id] = true));
1. Метод фильтр берет каждый элемент (obj) и создает новый массив из элементов, которые подходят под условие
2. Условие !uniqIds[obj.id] означает, что если элемента массива с текущим элементом цикла нет в пустом массиве, то это пустому массиву с индексом этого элемента присваивается значение true
типа
obj => !uniqIds[obj.id] && (uniqIds[obj.id] = true)
в текущий итерационный момент выглядит так
source.filter((obj) => {
console.log(obj.id);
//=> 'a'
// return !uniqIds[obj.id] && (uniqIds[obj.id] = true) - это тоже самое, что и
if (uniqIds[obj.id] !== 'undefined') { // if (uniqIds['a'] !== 'undefined') {
uniqIds[obj.id] = true; // uniqIds['a'] = true; => [{a: true}]
return true;
}
}
В двух словах - не встретилось значение одного массива в ключе другого, значит подходит
Содержимое массива uniqIds:
uniqIds = [
'a': true,
'b': true,
'c': true,
'd': true,
]