当前位置:首页 > JavaScript

实现js sort()

2026-01-31 14:56:40JavaScript

实现 JavaScript 的 sort() 方法

JavaScript 的 sort() 方法用于对数组元素进行排序。默认情况下,sort() 将元素转换为字符串并按 Unicode 码点顺序排序。如需自定义排序逻辑,需传入比较函数。

默认排序(按 Unicode 码点)

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

数字排序

默认情况下,数字会被转换为字符串排序,可能导致错误结果。需传入比较函数:

const numbers = [40, 100, 1, 5];
numbers.sort((a, b) => a - b); // 升序
console.log(numbers); // 输出: [1, 5, 40, 100]

numbers.sort((a, b) => b - a); // 降序
console.log(numbers); // 输出: [100, 40, 5, 1]

对象数组排序

根据对象属性排序时,需在比较函数中指定属性:

const users = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Bob', age: 20 }
];
users.sort((a, b) => a.age - b.age); // 按年龄升序
console.log(users); // 输出: [{name: 'Bob', age: 20}, ...]

自定义排序逻辑

比较函数需返回以下值:

  • 负数:a 排在 b
  • 正数:b 排在 a
  • 零:顺序不变
const mixed = ['Aa', 'aa', 'aA', 'AA'];
mixed.sort((a, b) => a.localeCompare(b, 'en', { sensitivity: 'base' }));
console.log(mixed); // 不区分大小写的排序

注意事项

  • sort() 会修改原数组。
  • 对大型数组,考虑性能更优的排序算法(如快速排序、归并排序)。
  • Unicode 排序可能对特殊字符(如 éñ)产生非预期结果,需使用 localeCompare

实现js sort()

标签: jssort
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: funct…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: In…