1、某公司机试题1-排序

47 阅读1分钟

image.png

我的答案:

//排序
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);