自己编写JavaScript的sort函数

Posted 三十亿少女的梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己编写JavaScript的sort函数相关的知识,希望对你有一定的参考价值。

  在平常开发中我们经常会遇到对数组进行排序的场景,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函数的主要内容,如果未能解决你的问题,请参考以下文章

python [代码片段]一些有趣的代码#sort

JavaScript高阶函数map/reducefilter和sort

组件&Props

javascript中的sort()方法

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

创建自己的代码片段(CodeSnippet)