JavaScript对象数组排序

本文介绍了如何在JavaScript中使用内置的`sort()`方法对不同类型的数组(数值、字符串和对象)进行排序,特别强调了如何通过比较函数实现对象数组按数值属性和字符串属性排序的方法,并提供了示例代码。

普通数组排序

普通数组排序:直接用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)

参考链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值