DEV Community

Discussion on: Getting unique values from a JavaScript array using Set

Collapse
 
peerreynders profile image
peerreynders • Edited
const originalNames = ['Pizza', 'Chicken', 'Pizza', 'Fish', 'Quinoa'];
const uniqueNames = Array.from(new Set(originalNames));
console.log(uniqueNames); // 🙂 ["Pizza", "Chicken", "Fish", "Quinoa"]

const originalFoods = [
  { name: 'Pizza' },
  { name: 'Chicken' },
  { name: 'Pizza' },
  { name: 'Fish' },
  { name: 'Quinoa' },
];
const processedFoods = Array.from(new Set(originalFoods));
console.log(processedFoods); // 😩 [{ name: "Pizza" }, { name: "Chicken" }, { name: "Pizza" }, { name: "Fish" }, { name: "Quinoa" }]

const toEntryByName = (obj) => [obj.name, obj];
const uniqueFoods = Array.from(
  new Map(originalFoods.map(toEntryByName)).values()
);
console.log(uniqueFoods); // 🙂 [{ name: "Pizza" }, { name: "Chicken" }, { name: "Fish" }, { name: "Quinoa" }];
Enter fullscreen mode Exit fullscreen mode

References: