Quiero crear un nuevo objeto, donde los usuarios solo deben aparecer una vez. Entonces, si una persona aparece varias veces, lo cual se da cuando given_name y el family_name coinciden, todos menos uno se eliminan.
Ejemplo:
[ { given_name: 'Aha', family_name: 'Yes', email: 'Yes@gmail.com', }, { given_name: 'Testname', family_name: 'Test', email: 'Testname@gmail.com', }, { given_name: 'Hans', family_name: 'Test', email: 'Testname@gmail.com', }, { given_name: 'Aha', family_name: 'Yes', email: 'Yesassss@gmail.com', } ]Así que lo anterior debería resultar en esto:
[ { given_name: 'Aha', family_name: 'Yes', email: 'Yes@gmail.com', }, { given_name: 'Testname', family_name: 'Test', email: 'Testname@gmail.com', }, { given_name: 'Hans', family_name: 'Test', email: 'Testname@gmail.com', } ]Puede hacer algo como esto, aquí estamos usando un mapa para obtener los valores únicos. Para las claves en el mapa, usamos una combinación de given_name y family_name .
const users = [{given_name: "Aha", family_name: "Yes", email: "Yes@gmail.com"}, {given_name: "Testname", family_name: "Test", email: "Testname@gmail.com"}, {given_name: "Hans", family_name: "Test", email: "Testname@gmail.com"}, {given_name: "Aha", family_name: "Yes", email: "Yesassss@gmail.com"}]; const removeDuplicates = (data) => { const userNameMap = {}; data.forEach((user) => { const userName = `${user.given_name}|${user.family_name}`; userNameMap[userName] = user; }); return Object.values(userNameMap); }; console.log(removeDuplicates(users));Utilice el siguiente código de línea
let arr = arr.filter((item,index)=>arr.findIndex(item2=>(item.family_name == item2.family_name && item.given_name == item2.given_name))>=index)