数组的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方法排序的原理冒泡排序. 冒泡排序:拿数组的当前项和后一项比较,如果当前项大于后一项,两者交换位置 ...
最新文章
- 类中成员函数声明后面的const的含义
- Verilog UDP(User Defined Primitives)
- 剩余大学时光里要做的事
- Python百度语音合成
- 模式识别谱聚类matlab,基因表达谱聚类分析
- idea工具的内存优化
- python画布组件_Python Tkinter 画布(Canvas)
- 从ccps项目中学习bottle,sqlalchemy,jinja2
- python代码实现自动点击屏幕
- Mutual Supervision for Dense Object Detection(ICCV2021)阅读笔记
- 2022年度调味品十大热门品牌排行
- 不知道PDF转PPT转换器哪个好用?分享三个简单好用的办公用具
- mysql查询名字中第2个字为丽,数据库技术课程复习5---MySQL语言(2)(单表查询)
- vba中excel和word复制粘贴
- 解读!《国家职业教育改革实施方案》要点来啦!
- 史上最易懂——一文详解线性回归算法的纯Python实现
- python123程序设计题说句心里话_大学生毕业实习报告(22200字).doc
- QQ6.6.8、红包玩起来
- MacOS通过移动硬盘来安装Win TO GO
- 安卓手机主题软件_最强安卓手机垃圾清理软件!