原文链接:https://blog.csdn.net/qq_37936542/article/details/78979521

js原生的 sort() 排序函数使用起来很方便

语法:arrayObject.sort(fun)       数组对象.sort(排序函数)

如果调用该方法时没有使用参数,将按照字符编码的顺序进行排序。也可以提供一个比较函数

作为参数,实现大小的排序。

例一:对数值型元素的数组进行大小排序

  1. //定义一个比较函数
  2. //升序排序
  3. function NumAscSort(a,b)
  4. {
  5. return a - b;
  6. }
  7. //降序排序
  8. function NumDescSort(a,b)
  9. {
  10. return b - a;
  11. }
  12. //定义数组
  13. var arr = new Array( 10, 30, 15, 45, 8);
  14. //对数组进行升序排序
  15. arr.sort(NumAscSort);
  16. alert(arr);
  17. //对数组进行降序排序
  18. arr.sort(NumDescSort);
  19. alert(arr);

例二:对字符串类型元素数组进行排序

  1. //当调用sort函数没有给予参数时,默认根据字符编码的顺序进行排序
  2. var arr = ["Apple", "Banana", "Orange"];
  3. arr.sort();
  4. alert(arr);

例三:对象数组排序

  1. //定义compare函数,参数name是对象的某一个属性,比如age、salary
  2. //返回一个可以用来对包含该成员的对象数组进行排序的比较函数
  3. var compare = function(name){
  4. return function(o, p){
  5. var a, b;
  6. if (typeof o === "object" && typeof p === "object" && o && p) {
  7. a = o[name];
  8. b = p[name];
  9. if (a === b) {
  10. return 0;
  11. }
  12. if (typeof a === typeof b) {
  13. return a < b ? -1 : 1;
  14. }
  15. return typeof a < typeof b ? -1 : 1;
  16. }
  17. else {
  18. throw ("error");
  19. }
  20. }
  21. }
  22. //定义员工对象数组
  23. var emp=[];
  24. emp[0]={name:"xiaoming", age:32, salary:11000};
  25. emp[1]={name:"xiaohong", age:17, salary:23000};
  26. emp[2]={name:"dahuang", age:58, salary:9000};
  27. emp[3]={name:"dajiji", age:62, salary:15000};
  28. <span style="white-space:pre">          </span>
  29. <span style="white-space:pre">          </span>
  30. //排序
  31. emp.sort(compare("age"));
  32. <span style="white-space:pre">  </span>
  33. for(var i = 0;i<emp.length; i++){
  34. alert(emp[i].age)
  35. }

例四:根据多个属性对 ‘对象数组’ 进行排序

  1. //定义compare函数,name是对象的某一个属性,fun是一个比较函数
  2. var compare = function(name,fun){
  3. return function(o,p){
  4. var a,b;
  5. if(o && p && typeof o === 'object' && typeof p ==='object'){
  6. a = o[name];
  7. b = p[name];
  8. //当o[name] 和 p[name] 相等时,利用fun函数根据另一个属性来进行比较
  9. if(a === b){
  10. return typeof minor === 'function' ? fun(o,p):0;
  11. }
  12. if(typeof a === typeof b){
  13. return a < b ? -1:1;
  14. }
  15. return typeof a < typeof b ? -1 : 1;
  16. }else{
  17. thro("error");
  18. }
  19. }
  20. }
  21. //定义员工对象数组
  22. var emp=[];
  23. emp[0]={name:"xiaoming", age:32, salary:11000};
  24. emp[1]={name:"xiaohong", age:62, salary:23000};
  25. emp[2]={name:"dahuang", age:58, salary:9000};
  26. emp[3]={name:"dajiji", age:62, salary:15000};
  27. //先根据age排序,age相等时,根据工资排序
  28. emp.sort(compare('age',compare('salary')));
  29. <span style="white-space:pre">      </span>
  30. for(var i = 0;i<emp.length; i++){
  31. <span style="white-space:pre">  </span>alert(emp[i].name)
  32. }

文末福利:

福利一:前端,Java,产品经理,微信小程序,Python等10G资源合集大放送:https://www.jianshu.com/p/e8197d4d9880

福利二:微信小程序入门与实战全套详细视频教程

【领取方法】

关注 【编程微刊】微信公众号:

回复【小程序demo】一键领取130个微信小程序源码demo资源。

回复【领取资源】一键领取前端,Java,产品经理,微信小程序,Python等资源合集10G资源大放送。



原文作者:祈澈姑娘
原文链接:https://www.jianshu.com/u/05f416aefbe1
创作不易,转载请告知

90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。

Js数组排序函数:sort()的更多相关文章

  1. Js数组排序函数sort()

    JS实现多维数组和对象数组排序,用的其实就是原生sort()函数,语法为:arrayObject.sort(sortby)(sortby 可选.规定排序顺序.必须是函数.) 返回值为对数组的引用:请注 ...

  2. 深入探讨JS中的数组排序函数sort()和reverse()

    最近在研究Javascript发现了其中一些比较灵异的事情.有点让人感到无语比如: alert(typeof( NaN == NaN));//结果为假. alert(typeof( NaN != Na ...

  3. JS中的数组排序函数sort()

    JavaScript实现多维数组.对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序. sort() 方法用于对数组的元素进行排序.语法如下: arrayObject.sort ...

  4. PHP数组排序函数有哪些

    PHP数组排序函数有哪些 一.总结 一句话总结:其实也就是是否保持索引,对键排序还是对值排序,除了sort,rsort.shuffle,usort外,都是保持索引的 是否保持索引 键排序 值排序 除了 ...

  5. js数组排序 reverse()和sort()方法的使用

    WEB前端|js数组排序reverse()和sort()方法的使用,数组中已经存在两个可以直接用来重排序的方法:reverse()和sort(). reverse()方法会对反转数组项的顺序. var ...

  6. JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)

    本文实例总结了JS数组排序技巧.分享给大家供大家参考,具体如下: 1.冒泡排序 var temp = 0; for (var i = 0; i < array.length; i++) { fo ...

  7. js数组之sort排序的用法

    sort排序 转载自:https://blog.csdn.net/idomyway/article/details/80544509 js中用方法sort()为数组排序.sort()方法有一个可选参数 ...

  8. js 数组排序和算法排序

    1.算法排序 a.插入排序 var arr = [23,34,3,4,23,44,333,444]; var arrShow = (function insertionSort(array){ if( ...

  9. js数组排序

    在JS中,sort方法可用于数组的排序:先来看一个例子: var arr = [1, 2, 3, 5, 7, 78, 8, 89]; arr.sort(); console.log(arr); // ...

随机推荐

  1. int android.support.v7.widget.RecyclerView$ViewHolder.mItemViewType' on a null.....

    Android.support.v7.widget.RecyclerView$ViewHolder.mItemViewType' on a null..空指针问题,费劲心思才找到报空指针的原因: 代码 ...

  2. 读阮一峰《ECMAScript 6 入门》小结

    读阮一峰<ECMAScript 6 入门>小结,http://es6.ruanyifeng.com/ 1. ES6简介 Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转 ...

  3. Vue的style与class

    1. style 可以通过 :style="{height:`${heightData.main}px`}" 实现样式的动态绑定, style绑定的是一个对象,多个样式时用“,”隔 ...

  4. RS-485总线和Modbus通信协议的关系

    一.RS-485总线 RS-485总线技术只是规定了接口的电气标准,并没有规定RS-485接口的电缆,插件以及通信协议,只是OSI规范中物理层的一个标准,RS-485总线采用差分平衡传输方式.由于RS ...

  5. php訪问mysql数据库

    PHP訪问Mysql数据库 PHP能够通过mysql接口和mysqli接口訪问mysql数据库. 须要加入mysql和mysqli接口才干訪问mysql数据库. windows下配置amp: a.安装 ...

  6. shell实例浅谈之三产生随机数七种方法

    一.问题 Shell下有时须要使用随机数,在此总结产生随机数的方法.计算机产生的的仅仅是"伪随机数".不会产生绝对的随机数(是一种理想随机数).伪随机数在大量重现时也并不一定保持唯 ...

  7. HSV颜色模型

    HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model). 注意的是OpenC ...

  8. Java Web学习总结(11)——Session使用示例教程

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  9. 洛谷——P1096 Hanoi双塔问题

    https://www.luogu.org/problem/show?pid=1096 题目描述 给定A.B.C三根足够长的细柱,在A柱上放有2n个中间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个 ...

  10. DB2 概览

    2006:IBM公布DB2.9.将数据库领域带入XML时代.IT建设业已进入SOA(Service-Oriented Architecture)时代.实现SOA.其核心难点是顺畅解决不同应用间的数据交 ...