当前位置:首页 > JavaScript

实现js sort()

2026-01-31 14:56:40JavaScript

实现 JavaScript 的 sort() 方法

JavaScript 的 sort() 方法用于对数组元素进行排序。默认情况下,sort() 将元素转换为字符串并按 Unicode 码点顺序排序。如需自定义排序逻辑,需传入比较函数。

默认排序(按 Unicode 码点)

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

数字排序

默认情况下,数字会被转换为字符串排序,可能导致错误结果。需传入比较函数:

const numbers = [40, 100, 1, 5];
numbers.sort((a, b) => a - b); // 升序
console.log(numbers); // 输出: [1, 5, 40, 100]

numbers.sort((a, b) => b - a); // 降序
console.log(numbers); // 输出: [100, 40, 5, 1]

对象数组排序

根据对象属性排序时,需在比较函数中指定属性:

const users = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Bob', age: 20 }
];
users.sort((a, b) => a.age - b.age); // 按年龄升序
console.log(users); // 输出: [{name: 'Bob', age: 20}, ...]

自定义排序逻辑

比较函数需返回以下值:

实现js sort()

  • 负数:a 排在 b
  • 正数:b 排在 a
  • 零:顺序不变
const mixed = ['Aa', 'aa', 'aA', 'AA'];
mixed.sort((a, b) => a.localeCompare(b, 'en', { sensitivity: 'base' }));
console.log(mixed); // 不区分大小写的排序

注意事项

  • sort() 会修改原数组。
  • 对大型数组,考虑性能更优的排序算法(如快速排序、归并排序)。
  • Unicode 排序可能对特殊字符(如 éñ)产生非预期结果,需使用 localeCompare

标签: jssort
分享给朋友:

相关文章

js实现验证

js实现验证

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

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…

js 实现验证码

js 实现验证码

实现验证码的 JavaScript 方法 生成随机验证码 验证码通常由随机字符(数字、字母或混合)组成。以下代码生成一个 6 位随机验证码(数字和字母混合): function generateCa…

vue js实现弹窗

vue js实现弹窗

Vue.js 实现弹窗的方法 使用组件实现弹窗 创建一个独立的弹窗组件,例如 Modal.vue,包含弹窗的 HTML 结构和样式。在组件中定义 props 控制弹窗的显示与隐藏。 <temp…