sort()排序以及多个属性数组对象排序(按条件排序)

简介: sort()排序以及多个属性数组对象排序(按条件排序)

原生排序

let arr = [5,2,1,4,9,8]
for(let i = 0 ; i < arr.length ; i ++) {
             for(let j = 0 ; j < arr.length -1 ; j ++) {
                 if(arr[j] > arr[j+1]){
                     let num = arr[j]
                     arr[j] = arr[j+1]
                     arr[j+1] = num
                     comeout.innerText = arr
                 }
             }
       // 结果 1,2,4,5,8,9

ES6排序

sort() 方法是最强大的数组方法之一。

默认排序顺序为按字母升序。

使用数字排序,你必须通过一个函数作为参数来调用。

比较函数两个参数a和b,a-b 升序,返回b-a 降序

注意: 这种方法会改变原始数组!

// 升序
 arr.sort(function(a,b){
                return a - b
            })
         console.log(arr)
// 结果 1,2,4,5,8,9
// 降序
arr.sort(function(a,b){
                return b - a
            })
          console.log(arr)
// 结果 9,8,5,4,2,1

根据数组中的某个属性排序

let arr_choice = [{id:1},{id:3},{id:2},{id:8},{id:6},{id:4}]
// 升序
arr_choice.sort(function(a,b){
                return b.id - a.id
            })
          console.log(arr_choice)
// 结果:[{"id":1},{"id":2},{"id":3},{"id":4},{"id":6},{"id":8}]
// 降序
arr_choice.sort(function(a,b){
                return b.id - a.id
            })
         console.log(arr_choice)
// 结果:[{"id":8},{"id":6},{"id":4},{"id":3},{"id":2},{"id":1}]

根据多个属性排序

let arr_multi = [{id:1,age:10},{id:3,age:5},{id:2,age:6},{id:8,age:8},{id:6,age:5},{id:4,age:5}]
// 升序
arr_multi.sort(function(a,b){
                // 默认根据年龄排序,年龄相同则按照id排序
                if(a.age==b.age){
                    return a.id - b.id
                }
                return a.age - b.age
            })
      console.log(arr_multi)
// 结果:[{"id":3,"age":5},{"id":4,"age":5},{"id":6,"age":5},{"id":2,"age":6},{"id":8,"age":8},{"id":1,"age":10}]
// 降序
 arr_multi.sort(function(a,b){
                // 默认根据年龄排序,相同则按照id排序
                if(a.age==b.age){
                    return b.id - a.id 
                }
                return b.age - a.age 
            })
            console.log(arr_multi)
// 结果:[{"id":1,"age":10},{"id":8,"age":8},{"id":2,"age":6},{"id":6,"age":5},{"id":4,"age":5},{"id":3,"age":5}]
目录
相关文章
|
Shell
shell获取命令输出和返回值
shell获取命令输出和返回值
3194 0
|
JavaScript 前端开发
JavaScript的`apply`方法:函数的“应用”与“调用”
JavaScript的`apply`方法:函数的“应用”与“调用”
|
定位技术
uniapp地图标记点的点击事件
uniapp地图标记点的点击事件
750 2
|
UED
使echarts图例legend只选中一个(selectedMode)
本文介绍了如何在ECharts图表中设置图例(legend)的选中模式为单选('single'),以确保在有多个图例时,用户只能选择一个图例项进行展示,从而提升图表的可读性和用户体验。
1860 2
使echarts图例legend只选中一个(selectedMode)
|
机器学习/深度学习 人工智能 监控
利用人工智能审查代码:提升代码质量和安全性
【10月更文挑战第15天】本文探讨了AI在代码审查中的应用,介绍了AI辅助代码审查工具如何通过机器学习算法提升代码质量、检测潜在错误,并促进团队知识共享。文中还详细说明了实施AI辅助代码审查的步骤及其实战技巧,强调了结合人工审查、定制化模型和持续监控的重要性。
|
存储 移动开发 API
如何实现浏览器内多个标签页之间的通信
在浏览器中,可通过三种方式实现多标签页通信:一是利用 `localStorage`,通过设置及监听数据变化实现信息传递;二是借助 `Broadcast Channel API`,在同一频道下双向传输消息;三是运用 `SharedWorker`,作为共享工件在各标签间架起沟通桥梁。每种方法依据实际需求选择使用。
|
缓存 前端开发 JavaScript
前端性能优化都有那些方案 ?
【7月更文挑战第11天】 前端性能优化包括资源合并压缩、懒加载、CDN使用、代码优化、缓存利用和图片优化等策略。例如,减少HTTP请求、压缩CSS/JS、事件委托、利用浏览器及服务器缓存、选择合适图片格式等,旨在提升网页速度和用户体验。服务工作者、异步加载和响应式设计也是关键。持续学习新技术以适应不断变化的优化需求。
1626 1
|
Python
Python系列(22)—— 排序函数
Python系列(22)—— 排序函数
|
JavaScript
JS数组reduce()方法详解及高级技巧
JS数组reduce()方法详解及高级技巧
669 1