gpt4 book ai didi

javascript - 如何将自定义排序应用于数组?

转载 作者:行者123 更新时间:2023-12-04 01:15:53 30 4
gpt4 key购买 nike

我想以自定义方式对数组进行排序。
示例是学生的类(class)级别:

_.sortBy(["Junior","Senior","Freshman","Sophomore"], function(classlevel){  
// ??
})
理想情况下,排序应该返回:
["Freshman","Sophomore","Junior","Senior"]
我在想我是否可以像这样提前对类(class)进行排名:
var classlevelRanked = [{ class: "Junior",
rank: 3
},{ class: "Senior",
rank: 4
},{ class: "Freshman",
rank: 1
},{ class: "Sophomore",
rank: 2
}]
然后通过以下方式应用排序:
_.sortBy(classlevelRanked, function(classlevel){  
return classlevel.rank;
})
但随后我必须通过以下方式去除队伍:
.map(function(classlevel){  
return classlevel["class"];
})
有没有更直接的方法来做到这一点,而无需预先对类(class)进行排名,然后再将其剥离?
谢谢你。

最佳答案

你应该能够做这样的事情:

_.sortBy(["Junior","Senior","Freshman","Sophomore"], function(element){  
var rank = {
"Junior" : 3,
"Senior" : 4,
"Freshman" :1,
"Sophomore" :2
};

return rank[element];
});
fiddle :
http://jsfiddle.net/hKQj8/

或者,如果 rank是一个可能在其他地方有用的常量,您可以在 _.sortBy 之外定义它表达与使用 _.propertyOf 对于更具声明性的风格:
var rank = {
"Junior" : 3,
"Senior" : 4,
"Freshman" :1,
"Sophomore" :2
};

_.sortBy(["Junior","Senior","Freshman","Sophomore"], _.propertyOf(rank));

关于javascript - 如何将自定义排序应用于数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16846403/

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