当前位置:首页 > JavaScript

实现排序 js

2026-01-31 22:27:52JavaScript

数组排序方法

JavaScript 提供内置的 sort() 方法对数组排序。默认按字符串 Unicode 码点排序,需自定义比较函数处理数字或其他规则。

升序排列数字数组

实现排序 js

const numbers = [3, 1, 4, 2];
numbers.sort((a, b) => a - b); // 输出 [1, 2, 3, 4]

降序排列数字数组

numbers.sort((a, b) => b - a); // 输出 [4, 3, 2, 1]

对象数组按属性排序

实现排序 js

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

稳定排序实现

现代浏览器(如 Chrome、Firefox)的 sort() 已实现稳定排序(相同值保持原始顺序)。若需兼容旧环境,可通过索引辅助实现:

const data = ['apple', 'banana', 'Apple'];
data.map((item, index) => ({ item, index }))
    .sort((a, b) => a.item.localeCompare(b.item) || a.index - b.index)
    .map(({ item }) => item);

自定义排序算法示例

快速排序实现

function quickSort(arr) {
  if (arr.length <= 1) return arr;
  const pivot = arr[0];
  const left = [], right = [];
  for (let i = 1; i < arr.length; i++) {
    arr[i] < pivot ? left.push(arr[i]) : right.push(arr[i]);
  }
  return [...quickSort(left), pivot, ...quickSort(right)];
}

注意事项

  • sort() 方法会修改原数组,需用 [...arr].sort() 避免副作用。
  • 对中文排序需使用 localeCompare
    ['中', '国', '人'].sort((a, b) => a.localeCompare(b, 'zh'));

标签: js
分享给朋友:

相关文章

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

js实现同步

js实现同步

同步与异步的概念 在JavaScript中,同步代码会按照顺序执行,每一行代码必须等待上一行代码执行完成后才能运行。异步代码则允许在等待某些操作(如网络请求)完成的同时继续执行其他代码。 实现同步的…

js 实现超链接

js 实现超链接

使用 HTML 的 <a> 标签 在 JavaScript 中动态创建超链接可以通过操作 DOM 实现。通过 document.createElement 创建一个 <a> 元…

js实现音乐播放

js实现音乐播放

使用HTML5 Audio API实现音乐播放 在JavaScript中,可以通过HTML5的Audio API轻松实现音乐播放功能。以下是基本实现方法: // 创建Audio对象 const au…