当前位置:首页 > JavaScript

js 实现排序

2026-01-31 16:01:20JavaScript

数组排序方法

JavaScript提供了内置的sort()方法用于对数组进行排序。默认情况下,sort()方法将元素转换为字符串并按照Unicode码点顺序排序。

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

数字排序

对于数字数组,需要提供比较函数以确保正确排序:

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 items = [
  { name: 'Edward', value: 21 },
  { name: 'Sharpe', value: 37 },
  { name: 'And', value: 45 },
];

items.sort((a, b) => a.value - b.value);
console.log(items);

自定义排序算法

实现快速排序算法:

function quickSort(arr) {
  if (arr.length <= 1) return arr;

  const pivot = arr[0];
  const left = [];
  const 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)];
}

const sortedArray = quickSort([10, 5, 2, 3]);
console.log(sortedArray); // [2, 3, 5, 10]

稳定排序

ES2019规定了sort()必须是稳定排序,即相等元素保持原始顺序:

const data = [
  { name: 'A', age: 20 },
  { name: 'B', age: 30 },
  { name: 'C', age: 20 }
];

data.sort((a, b) => a.age - b.age);
// 相同age的元素A和C保持原始相对顺序

性能考虑

对于大型数组,内置sort()方法通常比自定义实现的算法更快,因为现代JavaScript引擎对其进行了高度优化。

标签: js
分享给朋友:

相关文章

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现图片放大缩小

js实现图片放大缩小

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

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现目录

js实现目录

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

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…