头图来源:Twitter: 空へ by @mifulu

排序函数sort()中默认为按字典序排序

var a=[6,9,8,7,10];
a.sort(); //[10,6,7,8,9]

这样的输出结果当时令我一脸懵逼,一开始以为js中的排序如果省略compare参数排序Number数组会默认以数字大小升序排序,直到查了一下sort函数的定义才发现js中的数组排序默认是以元素的字典序升序排序,这可能是因为js中允许数组中的元素属于不同类型,所以如果不指定排序规则的话js并不会把待排序的数组默认为数字数组。

a.sort((a,b)=>(a-b)); //[6,7,8,9,10]

这样就正常了orz

最后修改:2022 年 01 月 01 日 05 : 30 PM
如果觉得我的文章对你有用,请随意赞赏