当前位置:首页 > JavaScript

js数组实现排序

2026-02-03 00:32:36JavaScript

数组排序方法

JavaScript 提供了多种数组排序方法,以下是常见的实现方式:

原生 sort() 方法 默认按 Unicode 码点升序排列字符串:

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

对数字排序需自定义比较函数:

js数组实现排序

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

自定义排序算法 实现冒泡排序:

function bubbleSort(arr) {
  let len = arr.length;
  for (let i = 0; i < len - 1; i++) {
    for (let j = 0; j < len - 1 - i; j++) {
      if (arr[j] > arr[j + 1]) {
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
      }
    }
  }
  return arr;
}

实现快速排序:

js数组实现排序

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 users = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 }
];
users.sort((a, b) => a.age - b.age); // 按年龄升序

多条件排序:

products.sort((a, b) => {
  if (a.category !== b.category) {
    return a.category.localeCompare(b.category);
  }
  return a.price - b.price;
});

注意事项

  • sort() 会修改原数组(非纯函数)
  • 对超过10万条数据建议使用更高效的算法(如快速排序)
  • 中文排序需使用 localeCompare
    ['北京', '上海', '广州'].sort((a, b) => a.localeCompare(b, 'zh'));

标签: 数组js
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.defin…

js实现倒计时

js实现倒计时

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

js 实现继承

js 实现继承

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

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEv…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 j…