码迷,mamicode.com
首页 > 编程语言 > 详细

自己编写JavaScript的sort函数

时间:2017-05-31 19:03:09      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:return   ascii   cti   定义   场景   .so   class   默认   function   

  在平常开发中我们经常会遇到对数组进行排序的场景,js给我们提供了sort方法可以对数组元素进行排序,默认是按ASCII字母表顺序排序,请看下面例子:

var a = [1, 3, 2, 4];
var b = [‘b‘, ‘a‘, ‘c‘, ‘d‘]; a.sort();
b.sort(); console.log(a);
// [1, 2, 3, 4]
console.log(b); // [‘a‘, ‘b‘, ‘c‘, ‘d‘]

  但有些时候我们需要自己定义排序要求,这时候我们就可以给sort函数传递一个函数,用来自定义排序规则,请看下面例子:

var a = [1, 3, 2, 4];

a.sort(function compare(a, b) {
   return b - a;
});
console.log(a);  // [4, 3, 2, 1]

  这是一个简单的自定义例子,把数组进行了降序排序,对于传给sort方法的函数function compare(a,b){...} ,遵循这样一个规则:若返回正数,则说明a和b需要交换,否则不交换。基于这个准则我们就可以根据自己需求来确定交不交换。请看下面代码:

function compare(a, b) {
    if () {       //如果不想交换,则返回-1
        return -1;
    }
    return 1;  //返回1表示想交换
}

  这样的话a和b交换还是不交换完全取决于你自己的逻辑。  你说了算嘻嘻!!

  如果有什么不正确的地方,还请各位大腿指正!!!!

 

自己编写JavaScript的sort函数

标签:return   ascii   cti   定义   场景   .so   class   默认   function   

原文地址:http://www.cnblogs.com/yonglin/p/6925252.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!