当前位置:首页 > 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']

数字排序

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

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

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

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 规范要求排序算法是稳定的,即相同值的元素在排序后保持原有相对顺序。

实现js   sort

性能考虑

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

标签: jssort
分享给朋友:

相关文章

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js图片轮播的实现

js图片轮播的实现

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

js 实现全选

js 实现全选

实现全选功能的方法 使用 JavaScript 实现全选功能通常需要操作复选框(checkbox)的状态。以下是几种常见的实现方式。 通过 DOM 操作实现全选 // 获取全选复选框和子复选框 co…