当前位置:首页 > 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实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…