📌  相关文章
📜  javascript 在对象数组中查找唯一值 - Javascript (1)

📅  最后修改于: 2023-12-03 15:16:10.876000             🧑  作者: Mango

Javascript 在对象数组中查找唯一值

当我们需要在一个对象数组中查找某个属性的唯一值时,可以使用Javascript的高级函数。下面我们将介绍使用mapfilter以及Set来实现这个功能。

map函数

map函数可以用于遍历数组,并返回一个新的数组,这个新数组中每个元素都是原数组中每个元素经过函数处理后的值。我们可以使用map函数来获取某个属性的值组成的新数组。

const arr = [{name: 'John', age: 25}, {name: 'Mary', age: 30}, {name: 'Tom', age: 25}];
const ages = arr.map(person => person.age);
console.log(ages); // [25,30,25]
filter函数

filter函数可以用于遍历数组,返回一个新数组,这个新数组中包含原数组中满足条件的元素。我们可以使用filter函数来获取某个属性的重复值。

const arr = [{name: 'John', age: 25}, {name: 'Mary', age: 30}, {name: 'Tom', age: 25}];
const ageArr = arr.map(person => person.age);
const duplicateAges = ageArr.filter((age, index) => ageArr.indexOf(age) !== index);
console.log(duplicateAges); // [25]
Set对象

Set是一种特殊类型的对象,它存储一组不重复的值。我们可以使用Set来获取某个属性的唯一值。

const arr = [{name: 'John', age: 25}, {name: 'Mary', age: 30}, {name: 'Tom', age: 25}];
const ageArr = arr.map(person => person.age);
const uniqueAges = [...new Set(ageArr)];
console.log(uniqueAges); // [25,30]
完整代码
const arr = [{name: 'John', age: 25}, {name: 'Mary', age: 30}, {name: 'Tom', age: 25}];

const ages = arr.map(person => person.age);
console.log(ages); // [25,30,25]

const duplicateAges = ages.filter((age, index) => ages.indexOf(age) !== index);
console.log(duplicateAges); // [25]

const uniqueAges = [...new Set(ages)];
console.log(uniqueAges); // [25,30]

以上是使用Javascript在对象数组中查找唯一值的方法。使用map可以获取某个属性的值组成的新数组,使用filter可以获取某个属性的重复值,使用Set可以获取某个属性的唯一值。我们可以根据自己的需求选择不同的方法。