【发布时间】:2020-08-31 03:03:46
【问题描述】:
我想对一个数组进行四次排序,每次按下 sort-array-button 时,不同的状态应该在顶部。
0: {id: 1, status: "danger"}
1: {id: 2, status: "danger"}
3: {id: 3, status: "red"}
4: {id: 4, status: "red"}
5: {id: 5, status: "yellow"}
6: {id: 6, status: "yellow"}
7: {id: 7, status: "green"}
首先点击排序按钮:
danger, danger, red, red, yellow, yellow, green
第二次按下:
red, red, yellow, yellow, green, danger, danger
第三次按下:
yellow, yellow, green, danger, danger, red, red
第四次按下:
green, danger, danger, red, red, yellow, yellow
第五次按下,你又回到了第一个排序
danger, danger, red, red, yellow, yellow, green
我通常这样对数组进行排序:
myArray.sort((x, y) => x.status < y.status ? -1 : 1);
如何扩展排序以赋予颜色更高的值以使其再次起作用?
【问题讨论】:
-
你应该在你的json中添加priority属性
-
“我通常这样对数组进行排序” 这是不正确的。当
x.status和y.status相同时,您需要返回0。对于字符串:(x, y) => x.status.localeCompare(y.status)。对于数字:(x, y) => x.status - y.status. -
@Aman Kumayu 我无法编辑 json。
-
@T.J.克劳德很高兴知道!我会更新我的代码。对这个问题还有什么想法吗?
标签: arrays typescript sorting