当前位置:首页 > JavaScript

实现js sort

2026-04-05 13:35:26JavaScript

JavaScript 数组排序方法

JavaScript 提供了 Array.prototype.sort() 方法用于对数组元素进行排序。该方法默认将元素转换为字符串后按照 Unicode 码点顺序排序。

基本用法

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

数字排序

默认的排序方式会导致数字被转换为字符串后比较:

实现js   sort

const numbers = [40, 1, 5, 200];
numbers.sort();
console.log(numbers); // [1, 200, 40, 5] (不正确)

需要提供比较函数来实现正确的数字排序:

实现js   sort

const numbers = [40, 1, 5, 200];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 5, 40, 200] (升序)
numbers.sort((a, b) => b - a);
console.log(numbers); // [200, 40, 5, 1] (降序)

对象数组排序

对于对象数组,可以根据某个属性进行排序:

const items = [
  { name: 'Edward', value: 21 },
  { name: 'Sharpe', value: 37 },
  { name: 'And', value: 45 }
];

// 按value属性升序
items.sort((a, b) => a.value - b.value);

// 按name属性字母顺序
items.sort((a, b) => {
  const nameA = a.name.toUpperCase();
  const nameB = b.name.toUpperCase();
  if (nameA < nameB) return -1;
  if (nameA > nameB) return 1;
  return 0;
});

稳定排序

从 ES2019 开始,JavaScript 规范要求排序算法是稳定的,即相同值的元素在排序后保持原有相对顺序。

性能考虑

sort() 方法的时间复杂度和空间复杂度取决于具体实现。现代 JavaScript 引擎通常使用高效的排序算法如 TimSort(时间复杂度 O(n log n))。

标签: jssort
分享给朋友:

相关文章

js 进度条的实现

js 进度条的实现

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

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…