数组的sort()排序
目录
- 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()排序相关推荐
- js数组的sort排序(获取中位数)
默认的sort排序,不指定参数,将会发现排序结果不是我们想要的真正排序,如下: A=[1,2,33,22,14,5,132] A.sort() //[1, 132, 14, 2, 22, 33, 5] ...
- Array数组对象sort排序方法
数组sort排序方法 Array数组对象中的sort方法是根据数组中数组元素的字符编码进行排序的,所以对数字的排序,会跟想要的升序结果不一样 通过设置sort()方法的参数可以按照自定义的排序方式对数 ...
- 数组方法 sort() 排序错乱问题
一.问题 在JavaScript中,数组使用sort()后发现有排序不正确的情况,如下: let arr = [1, 2, 3, 10, 20, 30] arr.sort() console.log( ...
- js数组的sort排序详解
http://www.cnblogs.com/longze/archive/2012/11/27/2791230.html <body> <div> sort()对数组排序,不 ...
- js数组的sort排序的原理和应用
1.js sort()方法的应用: 首先:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串( ...
- 对vector<int> 的数组使用sort排序出错
刷题时,对于多个vector数组按照第二个元素的大小进行排序,其实很简单. 力扣1710. Maximum Units on a Truck 但是一开始代码写的是 class Solution {pu ...
- js 数组对象sort()排序(升序降序)
升序 let testArr = [{ name: 'tom', age: '12' },{ name: 'marry', age: '17' },{ name: 'xxx', age: '14' } ...
- php 多维数组 array sort 排序 :array_multisort
1.参考链接: php简单实现多维数组排序的方法 参考二: 这个链接很好,可以直接看这个:PHP array_multisort-对多个数组或多维数组进行排序 2.案例一: 1 //13: 最佳: 2 ...
- js数组sort排序原理
大家都知道javascript的数组有sort排序方法,可以实现升序与降序,现在我们来学习一下sort方法排序的原理冒泡排序. 冒泡排序:拿数组的当前项和后一项比较,如果当前项大于后一项,两者交换位置 ...
最新文章
- python气象数据可视化_python grib气象数据可视化
- 【关于重载OnBackPressed无效的解决方案】
- svn错误 is already locked 解决方案
- 【转】语音、音频的思考
- Java举例include_Java StringUtils.getFilenameExtension方法代码示例
- JAVA架构师之路-视频学习
- VMware Funsion 8.5.1破解版
- P1125 [NOIP2008 提高组] 笨小猴 java
- 希尔伯特:数学世界的亚历山大(2009-06-11 21:33:43)
- eclipse的安装及最大子数组求和
- 工业路由器和家用路由器的区别?
- 蓝桥杯——原理图,与非门,或非门
- 自顶向下计算机网络 传输层
- 任志强:和马云是好朋友 房子没添砖但还会涨
- 软考高项之相关公式笔记
- 第5章 网站前台-活动与招聘
- 全球及中国生物质气化行业研究及十四五规划分析报告
- windows用ipconfig查看或刷新ip和dns
- 因为 BitMap,白白搭进去 8 台服务器。。。
- python环境迁移:从联网笔记本到离线服务器