当前位置:首页 > JavaScript

实现排序 js

2026-03-13 20:30:46JavaScript

数组排序方法

JavaScript 提供了 Array.prototype.sort() 方法对数组进行原地排序。默认情况下,该方法将元素转换为字符串并按 Unicode 码点排序。

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

数字排序

默认的 sort() 方法对数字排序可能产生意外结果,需传入比较函数。

实现排序 js

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]

对象属性排序

通过比较函数可基于对象属性排序。

实现排序 js

const users = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 },
  { name: 'Charlie', age: 20 }
];

users.sort((a, b) => a.age - b.age); // 按年龄升序
console.log(users); // Charlie(20), Alice(25), Bob(30)

稳定排序

ES2019 规定 sort() 必须为稳定排序(相同键值保持原始顺序)。

const data = [
  { value: 2, order: 1 },
  { value: 1, order: 2 },
  { value: 2, order: 3 }
];

data.sort((a, b) => a.value - b.value);
// 保证 value=2 的两个对象保持原始顺序

自定义排序逻辑

比较函数可返回任意负数、零或正数实现复杂排序。

const items = ['March', 'Jan', 'Feb', 'Dec'];
items.sort((a, b) => a.localeCompare(b)); // 按字母顺序
console.log(items); // ['Dec', 'Feb', 'Jan', 'March']

性能注意事项

sort() 的时间复杂度通常为 O(n log n),但具体实现依赖浏览器引擎。大规模数据排序建议考虑 Web Worker 或分治策略。

标签: js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

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

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…