JavaScript数组的sort方法实现类似数据库多字段的order by

// 定义数组
let array1 =  [
    { a: 2, b: 2 }, 
    { a: 1, b: 12 },
    { a: 5, b: 8 },
    { a: 3, b: 9 },
    { a: 2, b: 4 },
    { a: 3, b: 7 },
    { a: 1, b: 10 }
]
// 排序 优先按a属性排序,其次根据b属性排序
array1.sort((item1, item2) => (item1.a === item2.a) ? (item1.b - item2.b) : (item1.a  - item2.a))

console.log(array1);

优先按a属性排序,其次根据b属性排序,类似数据库中的order by a asc, b asc,在node中的执行结果如下:

[
  { a: 1, b: 10 },
  { a: 1, b: 12 },
  { a: 2, b: 2 },
  { a: 2, b: 4 },
  { a: 3, b: 7 },
  { a: 3, b: 9 },
  { a: 5, b: 8 }
]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。