JavaScript的sort函数

JavaScript 的 `Array.prototype.sort()` 方法用于对数组的元素进行排序,并返回排序后的数组。默认情况下,`sort` 方法将数组元素转换为字符串,并按照字符串的Unicode码点顺序进行排序。这意味着即使数组中的元素是数字,它们也会被先转换成字符串,然后再比较它们的字典序,这可能会导致非直观的排序结果。为了实现更复杂的排序逻辑,`sort` 方法可以接受一个可选的比较函数作为参数。

基本使用

默认排序(将元素视为字符串):

javascript 复制代码
const fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
fruits.sort();
console.log(fruits); // 输出: ['Apple', 'Banana', 'Mango', 'Orange']

数值排序(使用比较函数):

javascript 复制代码
const numbers = [40, 100, 1, 5, 25];
numbers.sort((a, b) => a - b);
console.log(numbers); // 输出: [1, 5, 25, 40, 100]

比较函数

比较函数应该接受两个参数(我们通常称之为`a`和`b`),并根据以下规则返回一个值来确定它们的排序顺序:

  • 如果返回值 小于 0 ,则将`a`排在`b`之前。

  • 如果返回值 大于 0 ,则将`b`排在`a`之前。

  • 如果返回值 等于 0,则`a`和`b`的相对位置不变

示例(假设我们想根据字符串长度对数组进行排序)

javascript 复制代码
const items = ['Banana', 'Orange', 'Apple', 'Mango'];
items.sort((a, b) => a.length - b.length);//从小到大排序
console.log(items); // 输出: ['Apple', 'Mango', 'Banana', 'Orange']

注意

  • JavaScript的sort方法会就地 对数组进行排序,也就是说,原数组会被修改
  • 对于数值排序,直接使用默认排序可能会得到错误的结果 ,因此建议总是为数值排序提供一个比较函数。
相关推荐
Monly216 分钟前
Java:修改打包配置文件
java·开发语言
AALoveTouch10 分钟前
大麦网协议分析
javascript·python
●VON20 分钟前
React Native for OpenHarmony:2048 小游戏的开发与跨平台适配实践
javascript·学习·react native·react.js·von
我命由我1234528 分钟前
Android 广播 - 静态注册与动态注册对广播接收器实例创建的影响
android·java·开发语言·java-ee·android studio·android-studio·android runtime
island131436 分钟前
CANN ops-nn 算子库深度解析:核心算子(如激活函数、归一化)的数值精度控制与内存高效实现
开发语言·人工智能·神经网络
xcLeigh1 小时前
Python入门:Python3 requests模块全面学习教程
开发语言·python·学习·模块·python3·requests
xcLeigh1 小时前
Python入门:Python3 statistics模块全面学习教程
开发语言·python·学习·模块·python3·statistics
秋邱1 小时前
用 Python 写出 C++ 的性能?用CANN中PyPTO 算子开发硬核上手指南
开发语言·c++·python
wenzhangli72 小时前
ooderA2UI BridgeCode 深度解析:从设计原理到 Trae Solo Skill 实践
java·开发语言·人工智能·开源
晚烛2 小时前
CANN + 物理信息神经网络(PINNs):求解偏微分方程的新范式
javascript·人工智能·flutter·html·零售