nums.sort()和nums.sort((a, b) => a - b)

这两者有重要区别:

nums.sort()

默认按字符串排序(字典序),即使数组里是数字也会被转换为字符串再比较:

javascript 复制代码
let nums = [100, 4, 200, 1, 3, 2];
nums.sort(); // [1, 100, 2, 200, 3, 4]
console.log(nums); // 错误的顺序!

nums.sort((a, b) => a - b)

按数值大小升序排序:

javascript 复制代码
let nums = [100, 4, 200, 1, 3, 2];
nums.sort((a, b) => a - b); // [1, 2, 3, 4, 100, 200]
console.log(nums); // 正确的顺序!

验证示例

javascript 复制代码
let test1 = [100, 4, 200, 1, 3, 2];
console.log(test1.sort()); // [1, 100, 2, 200, 3, 4]
console.log(test1.sort((a, b) => a - b)); // [1, 2, 3, 4, 100, 200]

let test2 = [10, 2, 1];
console.log(test2.sort()); // [1, 10, 2]
console.log(test2.sort((a, b) => a - b)); // [1, 2, 10]

对于最长连续序列问题

使用 nums.sort() 会导致错误结果:

javascript 复制代码
function longestConsecutiveWrong(nums) {
    nums.sort();
    console.log("排序后:", nums); // 错误的顺序
    // 后面的逻辑会得到错误结果
    // 比如 [100, 4, 200, 1, 3, 2] 排序后是 [1, 100, 2, 200, 3, 4]
    // 会认为最长连续序列是 1 而不是 4
}

其他排序方式

javascript 复制代码
// 升序排序
nums.sort((a, b) => a - b);

// 降序排序  
nums.sort((a, b) => b - a);

// 按绝对值排序
nums.sort((a, b) => Math.abs(a) - Math.abs(b));

// 按字符串长度排序(如果元素是字符串)
strings.sort((a, b) => a.length - b.length);

所以对于数字排序,一定要使用 sort((a, b) => a - b) 而不是默认的 sort()。这是 JavaScript 中一个常见的陷阱!

相关推荐
程序员大阳6 小时前
副队长JavaScript教程(50)-DOM:网页开发的起点
javascript·dom·es·节点·概念·document·关系
香芋芋圆11 小时前
iD-editor 详解|OSM官方在线编辑器,基于D3.js的轻量地图编辑器
开发语言·javascript·编辑器
晗夜未央13 小时前
任务队列反复失败,先分清重试、阻塞和结果待核对
开发语言·javascript
jktantan13 小时前
每个节点 41 字节:把一棵百万节点树拆进 14 个 typed array
前端·javascript·vue.js·算法·typescript
我命由我1234514 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理
程序员大阳15 小时前
副队长JavaScript教程(65)-详解JSON:轻量级数据交换格式
javascript·json·序列化·反序列化·stringify·parse
paopaokaka_luck16 小时前
基于springboot+vue的益暖微光公益服务平台(DeepSeek公益助手、善款信息追溯、志愿服务积分闭环、ECharts运营分析、活动状态自动流转)
java·前端·javascript·spring boot·mysql·架构·echarts
栀椩16 小时前
Electron 内嵌页面跨域问题(CORS/PNA)解决全记录
前端·javascript·electron
SEO_juper17 小时前
Chrome 扩展一键查看当前页面 SEO 信息:不用切页面,点一下全出来
前端·javascript·chrome
Highcharts.js17 小时前
CSUN 2026|Highcharts无障碍数据与AI分享
javascript·人工智能·数据分析·highcharts·图表开发