美文网首页
数组中有趣的sort排序

数组中有趣的sort排序

作者: 坚定自我 | 来源:发表于2017-02-23 23:09 被阅读0次

排序作为比较常用的一个功能会在日常业务场景上得到很广泛的应用,在js中为我们提供了一个sort快速排序函数,下面来让我们复习一下他的用法。

首先,我们先创建一个数组

var array = [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1];

我们调用数组的sort方法

array.sort(); //结果是[1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]

为什么会发生这种情况呢?是因为在排序中默认为字符串进行相互比较了,但是js中sort中的参数可以是一个函,我们来改造一下。

function comepare ( a, b ){

           if ( a < b ){

           return -1 ;

            }

           if( a > b ){

            return 1 ;

            }

            return 0 ;

}

将我们写好的这个比较函数传入sort中,再来看一下结果

array.sort(compare); //结果是[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

这样结果就正确了。

还可以自定义排序,看下面代码

var friends = [

{name: 'John', age: 30},

{name: 'Ana', age: 20},

{name: 'Chris', age: 25}

];

function comparePerson(a, b){

if (a.age < b.age){

return -1

}

if (a.age > b.age){

return 1

}

return 0;

}

console.log(friends.sort(comparePerson)); 

/最后输出位Ana(20), Chris(25), John(30)

字符串排序

var names =['Ana', 'ana', 'john', 'John'];

console.log(names.sort());

输出结果是

["Ana", "John", "ana", "john"]

这个结果是因为JavaScript在做字符比较的时候,是根据字符对应的ASCII值来比较的。例如,A、J、a、j对应的ASCII值分别是65、75、7、106。

我们来修改一下

names.sort(function(a, b){

if (a.toLowerCase() < b.toLowerCase()){

return -1

}

if (a.toLowerCase() > b.toLowerCase()){

return 1

}

return 0;

});

输出结果为["Ana", "ana", "John","john"]:

可以根据需求来定制自己的排序方法

相关文章

  • JS练习2:数组(牛客)

    1 sort()方法 Array.sort()方法将数组中的元素排序并返回排序后的数组。当不带参数调用sort()...

  • JavaScript 中的数组去重和排序

    排序 Sort方法 在JavaScript中,数组Array本身有具有Sort方法可以对数组的元素进行排序,并返回...

  • 数组排序和添加

    数组排序// 方法一://sort 排序 sort(function(a,b){return a-b;}) 数组...

  • 数组排序相关

    数组排序相关 结合sort和函数排序: 数组由小到大进行排序:sort,sortnum; vararr = [...

  • 对象数组如何排序-Comparable接口详解

    1 普通数组使用Arrays.sort方法排序 在Arrays工具类中,sort函数可以对普通数组进行排序,如以下...

  • 排序问题

    数组排序 数组排序最简单了,直接Arrays.sort(a); a是待排序的数组 根据对象中的成员变量来排序 这个...

  • NSSet和排序方法、数组去重

    NSSet 去掉数组中重复的数NSSet方法 NSDictionary方法 数组排序 冒泡排序 sort方法排序(快排)

  • 从小到大,从大到小,PHP 数组排序

    数组排序:数组中的元素能够以字母或数字顺序进行升序或降序排序。 PHP - 数组的排序函数 sort() - 以升...

  • Array方法

    sort() sort() 对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变。如果想让sort方...

  • sort原理

    sort()对数组进行排序,原数组改变 sort()方法没有参数时,按照ascii码对元素进行排序 sort()方...

网友评论

      本文标题:数组中有趣的sort排序

      本文链接:https://www.haomeiwen.com/subject/yfliwttx.html