我的答案:
//排序
function sort(arr, key, flag = 'asc') {
if (!arr || !Array.isArray(arr)) {
throw new Error('type error: arguments must be an array')
}
const list = [...arr]
return list.sort(function (a, b) {
const val1 = a[key]
const val2 = b[key]
if (flag === 'asc') {
return val1 - val2;
} else {
return val2 - val1
}
}
)}
const arr = [
{ a: 1 },
{ a: 4 },
{ a: 3 },
{ a: 2 },
{ a: 8 },
]
const asc = sort(arr,'a','desc')
console.log(asc);