普通数组排序
普通数组排序:直接用sort()方法就可以实现排序。
数值数组
var arr = [1,2,3,5,4];
undefined
arr.sort();
(5) [1, 2, 3, 4, 5]
字符串数组
var arr = ['1','a','c','d','在','2'];
undefined
arr.sort();
(6) ['1', '2', 'a', 'c', 'd', '在']
var arr = ['1','a','c','d','在','2',0];
undefined
arr.sort();
(7) [0, '1', '2', 'a', 'c', 'd', '在']
对象数组排序
对象数组排序:需要借助比较函数来实现排序。
按照对象的数值属性排序
通过比较函数来对比属性值
var arr = [{"text":"text2","key":1},{"text":"text45","key":45},{"text":"text4","key":4}]
undefined
arr.sort(function(a,b){return a.key - b.key})
(3) [{…}, {…}, {…}]0: {text: 'text2', key: 1}1: {text: 'text4', key: 4}2: {text: 'text45', key: 45}length: 3[[Prototype]]: Array(0)
按照对象的字符串属性排序
比较字符串属性会稍复杂
var arr = [{"text":"text2","key":1},{"text":"text45","key":45},{"text":"text4","key":4}]
arr.sort(function(a, b){
var x = a.text.toLowerCase();
var y = b.text.toLowerCase();
if (x < y) {return -1;}
if (x > y) {return 1;}
return 0;
});
(3) [{…}, {…}, {…}]0: {text: 'text2', key: 1}1: {text: 'text4', key: 4}2: {text: 'text45', key: 45}length: 3[[Prototype]]: Array(0)
参考链接:
- js如何排序对象数组:https://www.yisu.com/zixun/628655.html
- JS-对象数组排序: https://blog.csdn.net/weixin_43622279/article/details/123993588
- js 对象数组排序:https://www.cnblogs.com/guofan/p/14512797.html