如何对javascript对象数组进行排序和筛选
如果对象数组具有以下属性类型、年龄和性别,例如如何对javascript对象数组进行排序和筛选,javascript,arrays,Javascript,Arrays,如果对象数组具有以下属性类型、年龄和性别,例如 [{type: 0, age: 15, gender: "male"}, {type: 0, age: 16, gender: "female"}, {type: 0, age: 17, gender: "male"}] 进行筛选和排序的最佳方法是什么,以便返回具有最高年龄(排序部分)且类型为0且性别为男性(筛选部分)的对象(在本例中,{type:0,年龄:17,性别:“男性”}) 因此,它首先必须按type=0和gender=male进行筛
[{type: 0, age: 15, gender: "male"},
{type: 0, age: 16, gender: "female"},
{type: 0, age: 17, gender: "male"}]
进行筛选和排序的最佳方法是什么,以便返回具有最高年龄(排序部分)且类型为0且性别为男性(筛选部分)的对象(在本例中,{type:0,年龄:17,性别:“男性”}
)
因此,它首先必须按type=0和gender=male进行筛选
然后对符合条件的所有对象进行排序,以获得最高年龄。假设您希望最年长的男性的类型为零,可以先进行筛选,然后按年龄降序排序。将第一个对象作为结果
var数组=[{type:0,age:15,gender:“male”},{type:0,age:16,gender:“female”},{type:0,age:17,gender:“male”},
结果=数组.过滤器(函数(a){
返回a.type==0&&a.gender===male;
});
sort(函数(a,b){返回b.age-a.age;});
console.log(结果[0])
假设希望对象具有type=0
和max age
,则无需过滤或排序
只需在列表中循环检查type是否为0
,然后比较age并返回max
注意:这仅适用于要获取一个项目的情况。它可以缩放为少数有限元,但不能缩放为一般数
var数组=[{type:0,age:15,gender:“male”},{type:0,age:16,gender:“female”},{type:0,age:17,gender:“male”},
结果=数组.reduce(函数(p,c){
if(p.type==0&&c.type==0){
返回p.age>c.age?p:c;
}
返回p;
});
控制台日志(结果)代码>排序是什么意思?根据年龄排序?进行筛选和排序的最佳方法是什么<代码>数组.过滤器
和数组.排序