js数组处理--数组排序

源代码:

 1  /*
 2      数组排序
 3        参数:1.待排序数组,2.是否升序(默认是),3.排序规则|0为数字(默认),1为字符串|非必须,4.排序依据唯一key|对象数组时必须,String类型
 4     */
 5     sortArr(arr, bool = true, rule = 0, key) {
 6         if (bool) {
 7             if (key) {
 8                 if (rule == 0) {
 9                     return arr.sort((a, b) => a[key] - b[key])
10                 } else {
11                     return arr.sort((a, b) => {
12                         return a[key].localeCompare(b[key])
13                     })
14                 }
15             } else {
16                 if (rule == 0) {
17                     return arr.sort((a, b) => a - b)
18                 } else {
19                     return arr.sort((a, b) => {
20                         return a.localeCompare(b)
21                     })
22                 }
23             }
24         } else {
25             if (key) {
26                 if (rule == 0) {
27                     return arr.sort((b, a) => a[key] - b[key])
28                 } else {
29                     return arr.sort((b, a) => {
30                         return a[key].localeCompare(b[key])
31                     })
32                 }
33             } else {
34                 if (rule == 0) {
35                     return arr.sort((b, a) => a - b)
36                 } else {
37                     return arr.sort((b, a) => {
38                         return a.localeCompare(b)
39                     })
40                 }
41             }
42         }
43     },

参数解析:见代码注释

左手键盘安天下,右手鼠标定乾坤
原文地址:https://www.cnblogs.com/alt-fsh/p/14431634.html