js sort根据多个字段排序

sort是排序的方法,如果要根据多个字段进行排序,当然得用递归了。
而Array.shift()这个函数就是专门为递归设计的。
shift:删除数组的第一个元素、并返回第一个元素的值。

// 只设计升序,如果需要倒序,处理一下field就可以了
sort(arr, fields) {
    let checkOrder = (left, right, fields) => {
        let field = fields.shift()
        if (field === undefined) return 0;
        return left[field] === right[field] ? checkOrder(left, right, fields) : (left[field] < right[field] ? -1 : 1)
    }
    return arr.sort((left, right) => {
        return checkOrder(left, right, JSON.parse(JSON.stringify(fields)))
    })
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,281评论 0 3
  • 1.strlen()与mb_strlen()的作用分别是什么? strlen()和mb_strlen()都是作用于...
    落魄PHP女程序员阅读 364评论 0 2
  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,381评论 0 20
  • 总结了一些开发中常用的函数: usleep() //函数延迟代码执行若干微秒。 unpack() //函数从二进制...
    ADL2022阅读 474评论 0 3
  • 一、数组定义 array() 1、索引数组 在一个变量中,存储一个或多个值。数组中的每一个元素都有一个访问ID,根...
    竹与豆阅读 544评论 0 0