gpt4 book ai didi

Javascript 按年龄组排序数组,然后按性别排序

转载 作者:行者123 更新时间:2023-11-30 21:17:28 25 4
gpt4 key购买 nike

我正在尝试根据年龄组对数组进行排序,然后是性别。我想出了一个解决方案,并且有效,但我认为代码可以沿线某处进行改进,但我不知道如何改进。这是示例输入:

// removed

我的代码:

// removed code 

我得到的输出是正确的:

male 2,0,0,0,1,0,0,0,0
female 0,0,0,1,3,1,0,0,0

我很确定在速度性能方面有更好的方法可以实现这一点。有任何想法吗?

最佳答案

您可以使用 array#reduce .

var obj = [[{"age":41,"gender":"male"}],[{"age":10,"gender":"male"}],[{"age":10,"gender":"male"}],[{"age":31,"gender":"female"}],[{"age":58,"gender":"female"}],[{"age":50,"gender":"female"}],[{"age":50,"gender":"female"}],[{"age":50,"gender":"female"}]];

var result = obj.reduce(function(data,a){
++data[a[0]['gender']][a[0]['age'] > 80 ? data[a[0]['gender']].length : Math.ceil(a[0]['age'] / 10 - 1)];
return data;
},{'male' : Array(9).fill(0), 'female' : Array(9).fill(0)});

console.log(result);

如果要对对象进行排序,可以使用自定义排序函数

var obj = [[{"age":41,"gender":"male"}],[{"age":10,"gender":"male"}],[{"age":10,"gender":"male"}],[{"age":31,"gender":"female"}],[{"age":58,"gender":"female"}],[{"age":50,"gender":"female"}],[{"age":50,"gender":"female"}],[{"age":50,"gender":"male"}],[{"age":50,"gender":"female"}]]

var result = obj.sort(function(a,b){
return a[0].age - b[0].age || a[0].gender.localeCompare(b[0].gender);
});

console.log(result);

关于Javascript 按年龄组排序数组,然后按性别排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45529558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com