[Vuejs]-How do you add conditions to an array filter?

0👍

You can simply achieve this requirement by iterating the input array and with the help of Map object we can filtered out the duplicate keys and find out the desired result.

Live Demo :

const arr = [
  { id: 123, name: 'A', status: 'ACTIVE', date: '2023-01-01' },
  { id: 123, name: 'A', status: 'INACTIVE', date: '2023-02-01' },
  { id: 123, name: 'A', status: 'ACTIVE', date: '2023-01-01' },
  { id: 130, name: 'B', status: 'ACTIVE', date: '2023-01-01' },
  { id: 130, name: 'B', status: 'INACTIVE', date: '2023-02-01' },
  { id: 111, name: 'C', status: 'ACTIVE', date: '2023-01-01' }
];

function findDuplicateObjects(arr) {
  const duplicateMap = new Map();
  const duplicates = [];

  arr.forEach((item, index) => {
    const key = ['id', 'status', 'date'].map(prop => item[prop]).join('-');
      (duplicateMap.has(key)) ? duplicates.push(item) : duplicateMap.set(key, index);
    });
    
    return duplicates;
}

const duplicateObjects = findDuplicateObjects(arr);
console.log(duplicateObjects);

Leave a comment