原生排序

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}]

最新文章

  1. JSCH通过密钥文件进行远程访问
  2. iOS计算完整文字高度(适应iOS 10)
  3. python---dnspython
  4. 【leetcode】Subsets II (middle) ☆
  5. iOS NSString 和NSData 转换
  6. php中magic_quotes_gpc对unserialize的影响
  7. 5个经典的JavaScript面试基础问题
  8. Android实例-消息框(XE8+小米2)
  9. UVA 1351 - String Compression
  10. Asp.net MVC Web.config配置技巧
  11. 重拾CSS基础—开篇
  12. C#实现时间戳转化
  13. Linux下yum订购具体解释
  14. 获取radio的值
  15. CDN(转载)
  16. LaTeX初识 新手入门 Texlive和Texmaker学习
  17. idea中去除重复代码提示的灰色波浪线
  18. celery 和 haystack
  19. event、fly.js、购物车特效
  20. Android单元测试之四:仪器化测试

热门文章

  1. Cacheable VS Non-Cacheable
  2. C++编程笔记(多线程学习)
  3. 【每日一题】【暴力、动态规划、动规优化、贪心】2022年1月21日-NC19 连续子数组的最大和/最大子序和
  4. json提取器和beanshell处理器组合,将提取的所有id以数组返回
  5. 12、HSSFWorkbook实现多张sheet导出
  6. s2-007
  7. 通过Terraform创建GCP Pubsub
  8. 解析url地址hashhref
  9. 《《关于我把好好的c++小游戏改的很ex》》
  10. 默认方法:negate-集合信息筛选