function sortArray(arr, key, isDesc = false) {
if (!arr) {
return false;
}
let isArray = arr instanceof Array;
if (!isArray) {
return false;
}
if (arr.length <= 1) {
return arr;
}
let temp = JSON.parse(JSON.stringify(arr));
if (key) {
return temp.sort((a, b) => {
if (isDesc) {
return b[key] - a[key];
} else {
return a[key] - b[key];
}
});
} else {
return temp.sort((a, b) => {
if (isDesc) {
return b - a;
} else {
return a - b;
}
});
}
}
用途: 给数组排序
参数:arr, key, isDesc
* arr 可以是普通数据 可以json数组
* key -> 有key就是json数组,没有key就是普通数组排序
* desc -> true:从大到小 false -> 从小到大(默认),
例子1:
let arr = [36,74,21,7,367,16,86,85,94,241];
sortArray(arr) // [7, 16, 21, 36, 74, 85, 86, 94, 241, 367 ]
sortArray(arr,'',true) // [367, 241, 94, 86, 85, 74, 36, 21, 16, 7]
例子2:
let jsonarr = [
{name:'小明',age:19,score:29},
{name:'花花',age:29,score:8},
{name:'兰兰',age:45,score:12},
{name:'妮妮',age:24,score:32},
{name:'巴巴',age:32,score:65},
{name:'艾艾',age:4,score:89},
{name:'赫赫',age:25,score:38},
];
sortArray(jsonarr,'score')
sortArray(jsonarr,'age')
网友评论