我有一个对象数组,它返回 3 个可能的敏感度值:“低”、“中”、“高”。然而,使用下面的代码,它分别按升序排序“高 - 中和低”,我希望它返回“高 - 中和低”。我可以在这段代码中修复什么?
在此函数中,我比较数组中接收到的灵敏度
orderItemsByOrderOption = (items) => {
switch (this.state.selectedOrderOption.column) {
case "sensitivity":
return items.sort((a, b) => {
if (a.sensitivity > b.sensitivity) {
return 1;
}
if (a.sensitivity < b.sensitivity) {
return -1;
}
// a must be equal to b
return 0;
});
最佳答案
您可以创建一个具有所需顺序的数组,并使用该数组中数组元素的敏感度
索引进行排序。
示例
const arr = [
{ sensitivity: "MEDIUM" },
{ sensitivity: "LOW" },
{ sensitivity: "HIGH" }
];
const order = ["HIGH", "MEDIUM", "LOW"];
arr.sort((a, b) => order.indexOf(a.sensitivity) - order.indexOf(b.sensitivity));
console.log(arr);
关于javascript - 使用sort按偏好排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65401582/