当前位置:首页 > JavaScript

js sort实现

2026-01-30 13:10:40JavaScript

数组排序基础方法

JavaScript 数组的 sort() 方法默认将元素转换为字符串后按 Unicode 码点排序。直接调用可能无法满足数值排序需求。

const arr = [10, 2, 5];
arr.sort(); // 结果为 [10, 2, 5](字符串比较)

数值升序排序

通过比较函数实现数值排序,返回 a - b 表示升序:

const arr = [10, 2, 5];
arr.sort((a, b) => a - b); // 结果为 [2, 5, 10]

数值降序排序

返回 b - a 实现降序:

const arr = [10, 2, 5];
arr.sort((a, b) => b - a); // 结果为 [10, 5, 2]

对象属性排序

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

const users = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 20 }
];
users.sort((a, b) => a.age - b.age); // 按 age 升序

字符串排序

默认按字母顺序排序(区分大小写):

const names = ['Zoe', 'alice', 'Bob'];
names.sort(); // 结果为 ['Bob', 'Zoe', 'alice'](大写字母优先)

不区分大小写的字符串排序:

const names = ['Zoe', 'alice', 'Bob'];
names.sort((a, b) => a.localeCompare(b, undefined, { sensitivity: 'base' }));

稳定排序

ES2019 规定 sort() 必须为稳定排序(相同值的元素保持原始顺序)。现代浏览器均支持此特性。

性能注意事项

sort() 的时间复杂度通常为 O(n log n),但具体实现依赖浏览器引擎(如 V8 使用 TimSort)。对大型数组排序时,避免在比较函数中执行复杂操作。

自定义排序逻辑

比较函数可灵活定义规则。例如按字符串长度排序:

const words = ['apple', 'banana', 'kiwi'];
words.sort((a, b) => a.length - b.length); // 结果为 ['kiwi', 'apple', 'banana']

js sort实现

标签: jssort
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…