JavaScript学习笔记 -- sort()的用法 JavaScript学习笔记 -- sort()的用法

 

JavaScript学习笔记 -- sort()的用法

 

      关于排序问题,第一次看教程/书的时候都是迷迷糊糊的感觉,看完就忘记了。等到看第二遍的时候,才发现自己其实没有掌握该知识点,其实这些在网上都能搜到,但是只有自己亲自整理才会有比较深刻的印象。前面还有许多问题没有写在博客上,以后视情况添加。

      关于JS的sort()方法和reverse()方法是可以直接用来给数组进行排序的,reverse()用于逆向排序,而sort()用于正向排序。实例如下: 

  •  reverse()方法:将数组逆序排列(跟原数组的排序方式相反)
1
2
3
4
5
<script>
     var box = [1,4,5,13,9];
     alert(box.reverse());  //[9,13,5,4,1]
     alert(box);           //[9,13,5,4,1]  box本身也被修改了,说明是引用
</script>
  • sort()方法:将数组按从小到大顺序排列,注意:sort方法是根据字符串首字母对应的字符编码的顺序进行排序,如果数组元素是Number类型时会出现问题(自动将Number类型转换为String类型进行比较),如下:
1
2
3
4
5
<script>
     var box = [1,4,5,13,9];
     alert(box.sort());  //[1,13,4,5,9]
     alert(box);           //[1,13,4,5,9]  box本身同样也被修改了,说明是引用
</script>

  

为了解决这个问题,需要引入一个方法形式的参数,进行数值大小的比较,如下:

1
2
3
4
5
6
7
8
9
10
<script>
     var box = [1,4,5,13,9];
     function sortNum(value1,value2){
         return value1 - value2;
         /*如果返回值为负数,value1排value2的前面,反之则调换顺序,等于0不改变排序方式;
         如果要从大到小排列,则return value2 - value1 即可 */
     }
     alert(box.sort(sortNum));   //1,4,5,9,13
     alert(box);                  //1,4,5,9,13
</script>



      关于排序问题,第一次看教程/书的时候都是迷迷糊糊的感觉,看完就忘记了。等到看第二遍的时候,才发现自己其实没有掌握该知识点,其实这些在网上都能搜到,但是只有自己亲自整理才会有比较深刻的印象。前面还有许多问题没有写在博客上,以后视情况添加。

      关于JS的sort()方法和reverse()方法是可以直接用来给数组进行排序的,reverse()用于逆向排序,而sort()用于正向排序。实例如下: 

  •  reverse()方法:将数组逆序排列(跟原数组的排序方式相反)
1
2
3
4
5
<script>
     var box = [1,4,5,13,9];
     alert(box.reverse());  //[9,13,5,4,1]
     alert(box);           //[9,13,5,4,1]  box本身也被修改了,说明是引用
</script>
  • sort()方法:将数组按从小到大顺序排列,注意:sort方法是根据字符串首字母对应的字符编码的顺序进行排序,如果数组元素是Number类型时会出现问题(自动将Number类型转换为String类型进行比较),如下:
1
2
3
4
5
<script>
     var box = [1,4,5,13,9];
     alert(box.sort());  //[1,13,4,5,9]
     alert(box);           //[1,13,4,5,9]  box本身同样也被修改了,说明是引用
</script>

  

为了解决这个问题,需要引入一个方法形式的参数,进行数值大小的比较,如下:

1
2
3
4
5
6
7
8
9
10
<script>
     var box = [1,4,5,13,9];
     function sortNum(value1,value2){
         return value1 - value2;
         /*如果返回值为负数,value1排value2的前面,反之则调换顺序,等于0不改变排序方式;
         如果要从大到小排列,则return value2 - value1 即可 */
     }
     alert(box.sort(sortNum));   //1,4,5,9,13
     alert(box);                  //1,4,5,9,13
</script>

猜你喜欢

转载自www.cnblogs.com/yxs1530/p/10199114.html
今日推荐