Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对javascript对象数组进行排序和筛选_Javascript_Arrays - Fatal编程技术网

如何对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;
});

控制台日志(结果)排序是什么意思?根据年龄排序?进行筛选和排序的最佳方法是什么<代码>数组.过滤器
数组.排序