当前位置:首页 > 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)。对大型数组排序时,避免在比较函数中执行复杂操作。

自定义排序逻辑

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

js sort实现

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

标签: jssort
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现验证码

js实现验证码

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

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…