目录

  • 1、sort函数的基本用法
  • 2、sort函数接受一个函数作为参数
  • 3、数组中包含对象进行排序

1、sort函数的基本用法

数组的sort方法,默认按照字母顺序升序排序,更准确地说是按照ASCII码顺序排序;

let arr1 = ['b', 'g', 'a', 'd', 'c'];
console.log(arr1.sort()); // ["a", "b", "c", "d", "g"]let arr2 = [5, 1, 8, 3];
console.log(arr2.sort()); // [1, 3, 5, 8]

2、sort函数接受一个函数作为参数

sort()方法中还可接受参数,参数为一个函数,用来指定按某种顺序进行排列的函数。

该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。凡是返回1或者大于0的正数的时候这两个值就要交换位置

// 升序排列
let arr1 = ['b', 'g', 'a', 'd', 'c'];
arr1.sort(function(a, b) {if(a > b) {return 1; // 交换顺序} else {return -1; // 顺序不变}
}) // ["a", "b", "c", "d", "g"]// 降序排列
let arr2 = [5, 1, 8, 3];
arr2.sort(function(a, b) {if(a < b) {return 1; // 交换顺序} else {return -1; // 顺序不变}
}) // [8, 5, 3, 1]
// 升序排列
if(a>b) {return 1;
} else {return -1;
} // 简化为:
return a-b;// 降序排列简化为
return b - a;// 所以上述降序排列可写为:
let arr2 = [5, 1, 8, 3];
arr2.sort(function(a, b) {return b - a;
}) // [8, 5, 3, 1]

注意:return a-b;这种写法只适用于数字,因为字母无法进行加减运算

3、数组中包含对象进行排序

var items = [{ name: 'Edward', value: 21 },{ name: 'Sharpe', value: 37 },{ name: 'And', value: 45 },{ name: 'The', value: -12 },{ name: 'Magnetic', value: 0 },{ name: 'Zeros', value: 37 }
];// sort by value
items.sort(function (a, b) {return (a.value - b.value)
});// sort by name
items.sort(function(a, b) {var nameA = a.name.toUpperCase(); // ignore upper and lowercasevar nameB = b.name.toUpperCase(); // ignore upper and lowercaseif (nameA < nameB) {return -1;}if (nameA > nameB) {return 1;}// names must be equalreturn 0;
});

数组的sort()排序相关推荐

  1. js数组的sort排序(获取中位数)

    默认的sort排序,不指定参数,将会发现排序结果不是我们想要的真正排序,如下: A=[1,2,33,22,14,5,132] A.sort() //[1, 132, 14, 2, 22, 33, 5] ...

  2. Array数组对象sort排序方法

    数组sort排序方法 Array数组对象中的sort方法是根据数组中数组元素的字符编码进行排序的,所以对数字的排序,会跟想要的升序结果不一样 通过设置sort()方法的参数可以按照自定义的排序方式对数 ...

  3. 数组方法 sort() 排序错乱问题

    一.问题 在JavaScript中,数组使用sort()后发现有排序不正确的情况,如下: let arr = [1, 2, 3, 10, 20, 30] arr.sort() console.log( ...

  4. js数组的sort排序详解

    http://www.cnblogs.com/longze/archive/2012/11/27/2791230.html <body> <div> sort()对数组排序,不 ...

  5. js数组的sort排序的原理和应用

    1.js sort()方法的应用: 首先:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串( ...

  6. 对vector<int> 的数组使用sort排序出错

    刷题时,对于多个vector数组按照第二个元素的大小进行排序,其实很简单. 力扣1710. Maximum Units on a Truck 但是一开始代码写的是 class Solution {pu ...

  7. js 数组对象sort()排序(升序降序)

    升序 let testArr = [{ name: 'tom', age: '12' },{ name: 'marry', age: '17' },{ name: 'xxx', age: '14' } ...

  8. php 多维数组 array sort 排序 :array_multisort

    1.参考链接: php简单实现多维数组排序的方法 参考二: 这个链接很好,可以直接看这个:PHP array_multisort-对多个数组或多维数组进行排序 2.案例一: 1 //13: 最佳: 2 ...

  9. js数组sort排序原理

    大家都知道javascript的数组有sort排序方法,可以实现升序与降序,现在我们来学习一下sort方法排序的原理冒泡排序. 冒泡排序:拿数组的当前项和后一项比较,如果当前项大于后一项,两者交换位置 ...

最新文章

  1. python气象数据可视化_python grib气象数据可视化
  2. 【关于重载OnBackPressed无效的解决方案】
  3. svn错误 is already locked 解决方案
  4. 【转】语音、音频的思考
  5. Java举例include_Java StringUtils.getFilenameExtension方法代码示例
  6. JAVA架构师之路-视频学习
  7. VMware Funsion 8.5.1破解版
  8. P1125 [NOIP2008 提高组] 笨小猴 java
  9. 希尔伯特:数学世界的亚历山大(2009-06-11 21:33:43)
  10. eclipse的安装及最大子数组求和
  11. 工业路由器和家用路由器的区别?
  12. 蓝桥杯——原理图,与非门,或非门
  13. 自顶向下计算机网络 传输层
  14. 任志强:和马云是好朋友 房子没添砖但还会涨
  15. 软考高项之相关公式笔记
  16. 第5章 网站前台-活动与招聘
  17. 全球及中国生物质气化行业研究及十四五规划分析报告
  18. windows用ipconfig查看或刷新ip和dns
  19. 因为 BitMap,白白搭进去 8 台服务器。。。
  20. python环境迁移:从联网笔记本到离线服务器

热门文章

  1. 如何使用163的SMTP服务发邮件?
  2. MATLAB简单功能使用
  3. 数据盾揭秘系列(十二)|数据盾技术总监权威解读数据盾项目(下)
  4. Linux忘记root密码及设置root密码的图文操作方法
  5. 一个perfect 的解决 阴影拉伸的方法 shadow map strech
  6. JavaScript 控制浏览器全屏展示
  7. ESRGAN: Enhanced 增强的Super-Resolution Generative Adversarial Networks
  8. (2)ITK中迭代器的时间效率
  9. sharepoint 日历以及相关知识
  10. VUE单页面应用无感刷新当前页面