1
Amy 原创整理|资料核验:2026-10-30
MDN说明,Array.sort()默认先把元素转成字符串,再按UTF-16编码单元顺序比较;同时,它会原地修改数组,并返回同一个数组引用。
教学示例(虚构数字):[6, 42, 105].sort()得到[105, 42, 6],不是数值从小到大。数值升序可写(a, b) => a - b。如果需要保留原数组,可先复制:const sorted = [...values].sort((a, b) => a - b)。支持toSorted的环境也可用对应方法生成新数组。
Amy建议:检查排序代码时分别问“比较规则是什么”和“能否修改原数据”。特别是列表同时用于展示和计算时,不要以为把sort返回值赋给新变量就已经复制了原数组。
官方来源:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort