当前位置:首页 > JavaScript

实现js sort

2026-03-14 02:16:17JavaScript

实现 JavaScript 的 sort 方法

JavaScript 的 sort 方法用于对数组元素进行排序。默认情况下,sort 方法将元素转换为字符串并按 Unicode 码点排序。为了实现更复杂的排序逻辑,可以传递一个比较函数作为参数。

基本用法

默认排序(按 Unicode 码点排序):

const fruits = ['banana', 'apple', 'orange'];
fruits.sort();
console.log(fruits); // ['apple', 'banana', 'orange']

自定义比较函数

比较函数接收两个参数(通常称为 ab),并返回以下值:

  • 负数:a 应排在 b 前面。
  • 正数:b 应排在 a 前面。
  • 零:顺序不变。

按数字升序排序:

const numbers = [40, 100, 1, 5, 25];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 5, 25, 40, 100]

按数字降序排序:

numbers.sort((a, b) => b - a);
console.log(numbers); // [100, 40, 25, 5, 1]

对象数组排序

根据对象的某个属性排序:

const users = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Doe', age: 20 }
];

users.sort((a, b) => a.age - b.age);
console.log(users); // 按 age 升序排序

字符串排序(不区分大小写)

默认的字符串排序区分大小写。通过自定义比较函数实现不区分大小写排序:

实现js sort

const names = ['Alice', 'bob', 'Charlie', 'dave'];
names.sort((a, b) => a.localeCompare(b, undefined, { sensitivity: 'base' }));
console.log(names); // ['Alice', 'bob', 'Charlie', 'dave']

注意事项

  • sort 方法会修改原数组。
  • 对于大型数组,自定义比较函数的性能可能成为瓶颈。
  • 默认排序不适用于数字,可能导致意外结果(如 [1, 10, 2])。

标签: jssort
分享给朋友:

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…

js实现的游戏

js实现的游戏

JavaScript 游戏开发基础 JavaScript 是开发网页游戏的流行选择,因其无需插件即可在浏览器中运行。以下是一些关键技术和资源: HTML5 Canvas Canvas 提供了绘制图形…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…