sort() 方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。
语法:arrayObject.sort(sortby);参数sortby可选。规定排序顺序。必须是函数
注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <script type ="text/javascript">
function sortNumber (a ,b )
{
return a - b
}
var arr = new Array(6)
arr [0] = "10"
arr [1] = "5"
arr [2] = "40"
arr [3] = "25"
arr [4] = "1000"
arr [5] = "1"
document .write (arr .sort(sortNumber ))
</script> |
1
| 1,5,10,25,40,1000 //输出结果 |
这里可以看出,如果安装升序排列,方法为:
1 2 3 4
| function sortNumber(a,b)
{
return a - b
} |
如果是按照降序排列则为:
1 2 3 4
| function sortNumber(a,b)
{
return b - a
} |
根据数组对象中的某个属性值进行排序
sort方法接收一个函数作为参数,这里嵌套一层函数用来接收对象属性名,其他部分代码与正常使用sort方法相同。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var arr = [
{name :'zopp',age :0},
{name :'gpp',age :18},
{name :'yjj',age :8}
];
function compare (property ){
return function(a ,b ){
var value1 = a [property ];
var value2 = b [property ];
return value1 - value2 ;
}
}
console .log(arr .sort(compare ('age'))) |

根据参数不同确定升序排列、降序排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| sortBy: function(attr,rev){
//第二个参数没有传递 默认升序排列
if(rev == undefined){
rev = 1;
}else{
rev = (rev) ? 1 : -1;
}
return function(a,b){
a = a[attr];
b = b[attr];
if(a < b){
return rev * -1;
}
if(a > b){
return rev * 1;
}
return 0;
}
} |
使用方式:
1
| newArray .sort(sortBy ('number',false)) |
V8 引擎 sort 函数只给出了两种排序 InsertionSort 和 QuickSort,数量小于10的数组使用 InsertionSort,比10大的数组则使用 QuickSort。
「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」
共 0 条评论关于"JS的sort()方法的用法,参数以及排序原理"
最新评论