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

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…