当前位置:首页 > JavaScript

实现sort js

2026-01-31 14:04:29JavaScript

实现 JavaScript 排序

JavaScript 提供了多种排序方法,可以根据不同需求选择适合的实现方式。以下是常见的几种方法:

使用 Array.prototype.sort()

JavaScript 数组原生提供 sort() 方法,默认按字符串 Unicode 码点排序。对于数字排序,需要传入比较函数:

const numbers = [3, 1, 4, 1, 5, 9];
numbers.sort((a, b) => a - b); // 升序
numbers.sort((a, b) => b - a); // 降序

自定义比较函数

对于复杂对象的排序,可以自定义比较逻辑:

const items = [
  { name: 'Edward', value: 21 },
  { name: 'Sharpe', value: 37 }
];
items.sort((a, b) => a.value - b.value); // 按 value 升序
items.sort((a, b) => a.name.localeCompare(b.name)); // 按 name 字母顺序

实现稳定排序

原生 sort() 在某些浏览器中不稳定,可以通过添加索引实现稳定排序:

const stableSort = (arr, compare) => {
  const indexedArr = arr.map((item, index) => ({ item, index }));
  indexedArr.sort((a, b) => compare(a.item, b.item) || a.index - b.index);
  return indexedArr.map(({ item }) => item);
};

性能优化

对于大型数组,可以考虑非比较排序算法如计数排序或桶排序:

function countingSort(arr) {
  const max = Math.max(...arr);
  const count = Array(max + 1).fill(0);
  arr.forEach(num => count[num]++);
  const result = [];
  count.forEach((freq, num) => {
    for (let i = 0; i < freq; i++) {
      result.push(num);
    }
  });
  return result;
}

多条件排序

当需要按多个属性排序时,可以链式比较:

const people = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 }
];
people.sort((a, b) => {
  const nameCompare = a.name.localeCompare(b.name);
  return nameCompare !== 0 ? nameCompare : a.age - b.age;
});

选择排序方法时应考虑数据规模、排序稳定性以及性能需求。原生 sort() 适合大多数场景,特殊需求时可选择自定义实现。

实现sort js

标签: sortjs
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

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

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url,…

js实现全选

js实现全选

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

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取…