代码改变世界

开篇呀,恭喜恭喜,是个好开头-----关于sort()排序

2015-09-09 20:02  孤独大兔子  阅读(332)  评论(0)    收藏  举报

  感觉自己活了半辈子从来没写过博客,这可是头一回,而且不是记事是为了学习,先恭喜恭喜自己,有一个很好的开端,不管能不能半途而废,反正是想着为了学习做点什么。

  之前有很多东西需要搬过来,循序渐进吧,反正也是自己记录一些东西,随便写吧。

var arr = [{name:"a",age:16},{name:"b",age:106},{name:"c",age:20},{name:"d",age:23}];

  根据age排序name,最终要求输出结果 a,c,d,b;

  最终完成

<script>
var arr = [{name:"a",age:16},{name:"b",age:106},{name:"c",age:20},{name:"d",age:23}];
arr.sort(function(a,b){return a.age>b.age;});
for(var i=0;i<arr.length;i++){
    console.log(arr[i].name)
}
</script>

其实早就知道sort()有排序功能,只不过没想到能这么用

分析:

如果给一个数组排序的话,一般会这么写

var arr=[1,3,2,4,5];
arr.sort();
console.log(arr);

再改进一下的话这么写

var arr=[1,3,2,4,5];
arr.sort(function(a,b){return a-b});
console.log(arr);

后来听了讲课才知道,一开始的时候是这么写的,其实就是按顺序拿两个数来比较大小

var arr=[1,103,2,4,5];
arr.sort(function(a,b){
 if(a<b){      
     return -1;
 }
 else if(a>b){
     return 1;
 }
 else{
     return 0;
 }
});
console.log(arr);

只不过,返回-1,也可以写成-5,-0.5...任意负数都可以

改成a-b以后,可以是负数可以是整数也可以是0