Javascript 如何跳过相同的值并获取数组长度

Javascript 如何跳过相同的值并获取数组长度,javascript,arrays,Javascript,Arrays,我有一个示例数组: var person = [{ firstName:"John", lastName:"Doe", age:46 }, { firstName:"Alexander", lastName:"Bru", age:46 }, { firstName:"Alex", lastName:"Bruce", age:26 }]; Simpleperson.length给出了数组的长度,但是当年龄相同时,我需要合并值

我有一个示例数组:

var person = [{
    firstName:"John",
    lastName:"Doe",
    age:46
},
{
    firstName:"Alexander",
    lastName:"Bru",
    age:46
},
{
    firstName:"Alex",
    lastName:"Bruce",
    age:26
}];

Simple
person.length
给出了数组的长度,但是当年龄相同时,我需要合并值。因此,如果两个人年龄相同,则返回
1
no
2
。对不起,我的英语不好,我可能会犯错误。

您可以使用下划线或类似的库来支持
groupBy

_.size(_.groupBy(person, "age"))
方法与年龄的对象引用一起使用

var-person=[{
名字:“约翰”,
姓:“Doe”,
年龄:46
}, {
名字:“亚历山大”,
姓氏:“布鲁”,
年龄:46
}, {
名字:“亚历克斯”,
姓:“布鲁斯”,
年龄:26
}];
//用于存储对年龄的引用的对象
var obj={},
res=0;
//迭代计数
人事费(职能)(五){
//检查年龄尚未定义
如果(!obj[v.age]){
//定义属性
obj[v.age]=正确;
//增量计数
res++;
}
});

控制台日志(res)
将数组向下过滤,只过滤那些在数组中查找到的元素,对于这些元素,具有相同年龄的第一个元素会生成元素本身,然后获取结果的长度:

array.filter(o1 => o1 === array.find(o2 => o2.age === o1.age)).length
另一个想法是使用一个名为
uniqueCount
的小函数,该函数计算(排序)数组中唯一值的数量:

现在,您可以创建一个包含所有年龄段的数组,并对其上的唯一元素进行计数:

uniqueCount(array.map(e => e.age).sort(numeric))

如果允许,您可以将所有年龄添加到一个集合中并计算其大小

const people=[{
名字:“约翰”,
姓:“Doe”,
年龄:46
}, {
名字:“亚历山大”,
姓氏:“布鲁”,
年龄:46
}, {
名字:“亚历克斯”,
姓:“布鲁斯”,
年龄:26
}];
const ages=新集合(people.map(person=>person.age));

console.log(ages.size)
我不想使用其他库,但感谢您的帮助。@ReasonPlay:很高兴帮助您:)
uniqueCount(array.map(e => e.age).sort(numeric))