JavaScript学习笔记

Javascript中sort()的漏洞

2017-02-21  本文已影响7人  小人物的秘密花园

语法

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)

上一篇下一篇

猜你喜欢

热点阅读