sort 排序,, ts定义数据类型

const arr1 = [{ a: 1, b: 1 }, { a: 3, b: 0 }, { a: -1, b: 1 }, { a: 3, b: 1 }]
const arr2 = [{ a: { b: 3 } }, { a: { b: 1 } }, { a: { b: 2 } }, { a: { b: 1 } }]


interface CompareFn<T> {
  (a:T):number
}
function sort (arr:T[], compareFn:CompareFn, asc:boolean){
  for( let i = 0 ; i < arr.length - 1; i++) {
    for (let j = 0; j < arr.length - i -1 ; j++) {
      if(asc){
        if( compareFn(arr[j]), compareFn(arr[j+1]) ) {
          let temp = arr[j]
          arr[j] = arr[j+1]
          arr[j+1] = temp
        }
      } else {
          if( compareFn(arr[j]) , compareFn(arr[j+1]) ) {
            let temp = arr[j]
            arr[j] = arr[j+1]
            arr[j+1] = temp
        }
      }
    }
  }
return arr 
}

sort( arr1, function(a,b){ return a.a - b.a > 0}, true)
sort( arr2, function(a,b){ return a.a.b - b.a.b >0 }, false)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。