当前位置:首页 > JavaScript

js实现升序排列

2026-02-02 23:28:17JavaScript

使用 Array.prototype.sort() 方法

JavaScript 数组的 sort() 方法默认将元素转换为字符串并按 Unicode 码点排序。为实现升序排列,需传入比较函数:

const arr = [5, 2, 8, 1, 4];
arr.sort((a, b) => a - b);
console.log(arr); // 输出 [1, 2, 4, 5, 8]

比较函数返回负数时,a 排在 b 前面;返回正数时,b 排在 a 前面;返回 0 则顺序不变。

对字符串数组排序

字符串数组可直接使用 sort() 方法按字典序升序排列:

const strArr = ['banana', 'apple', 'cherry'];
strArr.sort();
console.log(strArr); // 输出 ['apple', 'banana', 'cherry']

如需忽略大小写排序:

const mixedCaseArr = ['Banana', 'apple', 'Cherry'];
mixedCaseArr.sort((a, b) => a.localeCompare(b, undefined, { sensitivity: 'base' }));
console.log(mixedCaseArr); // 输出 ['apple', 'Banana', 'Cherry']

对对象数组按属性排序

通过比较函数指定对象属性实现升序:

const users = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 20 },
  { name: 'Doe', age: 22 }
];
users.sort((a, b) => a.age - b.age);
console.log(users);
// 输出: [{name:'Jane', age:20}, {name:'Doe', age:22}, {name:'John', age:25}]

稳定排序的实现

ES2019 后 sort() 已稳定,但如需兼容旧环境,可通过索引保持稳定性:

const data = [
  { value: 2, index: 0 },
  { value: 1, index: 1 },
  { value: 2, index: 2 }
];
data.sort((a, b) => (a.value - b.value) || (a.index - b.index));
console.log(data); // 相同 value 的元素保持原始顺序

性能优化建议

大规模数据排序时,考虑以下优化:

  • 避免在比较函数中创建新对象
  • 对于固定排序规则,可预先计算排序键
  • 超过 10^5 个元素时,推荐使用 TypedArray 或 Web Worker
// 使用 TypedArray 加速
const largeArray = new Int32Array([50000, 20000, 80000]);
largeArray.sort((a, b) => a - b);

js实现升序排列

标签: 升序排列
分享给朋友:

相关文章

vue实现文字环形排列

vue实现文字环形排列

环形文字排列的实现方法 在Vue中实现文字环形排列可以通过CSS和JavaScript结合的方式完成。以下是具体实现步骤: 使用CSS transform属性 通过CSS的transform属性旋…

vue实现倒序排列

vue实现倒序排列

实现数组倒序排列 在Vue中实现数组倒序排列可以通过以下几种方式: 使用JavaScript原生方法 // 假设有一个数组 const originalArray = [1, 2, 3, 4, 5…

vue实现可拖拽排列

vue实现可拖拽排列

Vue实现拖拽排列的方法 使用HTML5原生拖拽API HTML5提供了原生的拖拽API,可以通过draggable属性实现拖拽功能。在Vue中结合事件监听实现排列。 <template&g…

php实现排列

php实现排列

PHP 实现排列的方法 排列是指从一组元素中按照一定顺序选取若干个元素的所有可能组合。在 PHP 中,可以通过递归或迭代的方式实现排列生成。 递归方法实现排列 递归是一种常见的排列生成方法,通过不…

js数组升序排序实现

js数组升序排序实现

使用 sort() 方法实现升序排序 JavaScript 数组的 sort() 方法默认按 Unicode 码点排序,对数字数组需传入比较函数。比较函数返回 a - b 时实现升序排列: cons…

js数组实现全排列

js数组实现全排列

全排列的概念 全排列是指将一组元素的所有可能的排列方式列举出来。例如,数组 [1, 2, 3] 的全排列包括 [1, 2, 3]、[1, 3, 2]、[2, 1, 3] 等共 6 种排列。…