📅  最后修改于: 2023-12-03 15:16:10.876000             🧑  作者: Mango
当我们需要在一个对象数组中查找某个属性的唯一值时,可以使用Javascript的高级函数。下面我们将介绍使用map
,filter
以及Set
来实现这个功能。
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
函数来获取某个属性的重复值。
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
来获取某个属性的唯一值。
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
可以获取某个属性的唯一值。我们可以根据自己的需求选择不同的方法。