数组的sort()排序

本文详细介绍了JavaScript数组的sort方法,包括基本用法、自定义排序规则以及如何对包含对象的数组进行排序。通过示例代码展示了升序和降序排序,并解释了排序函数的工作原理。此外,还提供了对包含对象属性排序的实例,涉及根据对象的特定属性进行升序或降序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 lowercase
  var nameB = b.name.toUpperCase(); // ignore upper and lowercase
  if (nameA < nameB) {
    return -1;
  }
  if (nameA > nameB) {
    return 1;
  }

  // names must be equal
  return 0;
});
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值