当前位置:首页 > JavaScript

js实现升序排列

2026-04-07 17:17:52JavaScript

使用 Array.prototype.sort() 方法

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

const numbers = [3, 1, 4, 1, 5, 9];
numbers.sort((a, b) => a - b);
console.log(numbers); // 输出: [1, 1, 3, 4, 5, 9]

比较函数规则:

  • 若返回值 < 0a 排在 b
  • 若返回值 > 0b 排在 a
  • 若返回值 = 0,顺序不变

对字符串数组排序

字符串数组可直接使用 sort() 方法实现字典序升序:

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

如需忽略大小写排序:

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

对象数组按属性排序

通过指定对象属性进行比较:

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

稳定排序的实现

ES2019 起 sort() 保证稳定性(相同值保持原始顺序)。如需兼容旧环境,可扩展排序逻辑:

js实现升序排列

const data = [
  { value: 1, index: 0 },
  { value: 1, index: 1 }
];
data.sort((a, b) => {
  const diff = a.value - b.value;
  return diff !== 0 ? diff : a.index - b.index;
});

性能注意事项

大规模数据排序时,V8 引擎(Chrome/Node.js)使用 TimSort 算法,时间复杂度为 O(n log n)。避免在循环中频繁调用 sort()

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

相关文章

js数组实现全排列

js数组实现全排列

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

js实现升序排列

js实现升序排列

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

js实现升序降序

js实现升序降序

JavaScript 数组排序(升序/降序) 升序排序 使用 sort() 方法默认按 Unicode 编码升序排列。对数字数组需传入比较函数: const arr = [3, 1, 4, 2];…

vue实现升序降序

vue实现升序降序

Vue实现升序降序的方法 在Vue中实现升序和降序功能,通常涉及对数组数据的排序操作。可以通过计算属性或方法结合JavaScript的sort()函数来实现。以下是几种常见的实现方式: 使用计算属性…

PHP实现数字排列

PHP实现数字排列

数字排列的基本概念 数字排列指将一组数字按照特定顺序重新组合,常见于算法题或实际开发需求中。PHP提供了多种方式实现数字排列,包括递归、迭代以及内置函数组合。 使用递归实现全排列 递归是解决排列问题…

php实现全排列

php实现全排列

PHP实现全排列的方法 全排列是指将一组元素按照所有可能的顺序进行排列。在PHP中,可以通过递归或迭代的方式实现全排列。以下是几种常见的实现方法: 递归方法 递归是一种直观的实现全排列的方式,通过不…