JS_高阶函数(sort)

 1 //javaScript sort()排序算法
 2         //sort()方法默认把所有的元素转换成String再排序,字符串是根据ASCII进行排序的,所以会出现“10”排在“2”前面,或是小写字母“a”排在大写“B”的后面等情况。、
 3 
 4         //可以通过接收一个比较函数来实现自定义的排序。
 5         /*1*/
 6         var arr=[10,20,1,2];
 7         arr.sort(function(x,y){
 8             if(x<y){
 9                 return -1;
10             }
11             if(x>y){
12                 return 1;
13             }
14             return 0;
15         });
16         console.log(arr);//[1, 2, 10, 20]
17 
18 
19         /*2*/
20         var arr=[10,20,1,2];
21         arr.sort(function(x,y){
22             if(x>y){
23                 return -1;
24             }
25             if(x<y){
26                 return 1;
27             }
28             return 0;
29         });
30         console.log(arr);//[20, 10, 2, 1]
31 
32         /*3*/
33         //对字符串按字母顺序进行排序。实际上就是把字符串都变成大写(或者是都变成小写),再比较。
34         var arr = ['Google', 'apple', 'Microsoft'];
35         var a=arr.sort(function(s1,s2){
36             x1=s1.toUpperCase();
37             x2=s2.toUpperCase();
38             if(x1<x2){
39                 return -1;
40             }
41             if(x1>x2){
42                 return 1;
43             }
44             return 0;
45         });
46         console.log(a);//["apple", "Google", "Microsoft"]
47 
48         //要注意的是:sort()方法会直接对Array进行修改,它返回的结果仍是当前Array。
49         console.log(arr);// ["apple", "Google", "Microsoft"]

 

posted @ 2017-07-18 17:14  忍冬。  阅读(344)  评论(0编辑  收藏  举报