当前位置:首页 > JavaScript

实现排序 js

2026-01-31 22:27:52JavaScript

数组排序方法

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

升序排列数字数组

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]

对象数组按属性排序

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
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Pa…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="sli…

js实现报表

js实现报表

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

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inp…