Javascript中sort()的漏洞

语法

arrayObject.sort(compare);

参数compare,可选;

设置compare排序规则,则返回符合规则的新数组;

例子:将元素按升序排序

arr.sort(function(a, b) {

if (a > b) {

return 1;

} else if (a < b) {

return -1;

} else {

return 0;

}

});

降序排序

arr.sort(function(a, b) {});

if (a > b) {

return -1;

} else if (a < b) {

return 1;

} else {

return 0;

}

未设置compare排序规则,默认先将数组元素转换为字符,再按找字符编码进行排序;

结果


图1



返回值

返回对数组的引用;

数组的排序是在原数组的基础上进行的,没有生成副本数组;--改变了元素组

Note:

在对数字类型的数组进行排序时,要制定排序规则,避免出现sort()在默认情况下将数组中的元素转换为String后,在按照字符编码进行排序的情况。(参照图1)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容