js sort()的比较函数

博客介绍了数组排序规则,依据比较函数的返回值来确定数组排列顺序。若返回值大于零,数组降序排列;若返回值小于零,数组升序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

排序规则,根据比较函数返回值大于零,则数组降序排列,返回值小于零则数组升序排列。

### JavaScript 中 `sort` 函数的用法 #### 基本语法 在 JavaScript 中,`sort()` 方法用于对数组元素进行排序,并返回已排序的新数组。默认情况下,该方法会按照字符串的 Unicode 编码顺序来排列数组项。 ```javascript array.sort([compareFunction]) ``` 参数说明: - `compareFunction`: 可选参数,规定了两个值比较的方式。如果不提供此函数,则按转换成字符串后的字典序进行升序排列[^2]。 #### 使用示例 ##### 默认排序行为 当不传递任何自定义比较函数时: ```javascript let numbers = [1, 30, 4, 21]; numbers.sort(); console.log(numbers); // 输出 ["1", "21", "30", "4"] ``` 注意,默认排序方式可能会导致意外的结果,特别是对于数值类型的数组,因为它们会被当作字符串处理。 ##### 自定义排序逻辑 为了实现更合理的数值排序或其他特定需求下的排序规则,可以传入一个比较函数作为参数: ```javascript function compareNumbers(a, b) { return a - b; } let nums = [1, 30, 4, 21]; nums.sort(compareNumbers); console.log(nums); // 正确输出 [1, 4, 21, 30] // 或者使用箭头函数简化写法 nums.sort((a, b) => a - b); ``` 如果希望降序排列,只需改变减号的方向即可: ```javascript nums.sort((a, b) => b - a); ``` #### 处理复杂对象 对于包含多个属性的对象数组,可以通过指定某个字段来进行排序操作: ```javascript const items = [ { name: 'Edward', value: 21 }, { name: 'Sharpe', value: 37 }, { name: 'And', value: 45 } ]; items.sort(function (itemA, itemB) { return itemA.value - itemB.value; }); console.log(items); // 箭头函数版本 items.sort((itemA, itemB) => itemA.value - itemB.value); ``` 上述代码片段展示了如何基于对象中的 `value` 属性完成从小到大的排序过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值