美文网首页
数组的sort()方法传参疑惑

数组的sort()方法传参疑惑

作者: mint9602 | 来源:发表于2017-02-04 18:33 被阅读48次

在默认情况下,sort()方法按升序排列数组项——即最小的值位于前面,最大的值排在后面,为了实现排序,sort()方法会调用每个数组的toString()转型方法,然后比较的就是字符串了。如下所示:

var values = [0, 1, 5, 10, 15];
values.sort();
alert(values);               //0,1,10,15,5

问题出现了,"10"位于"5"的前面,数组的顺序被改变了,这种排序方法在很多情况下都不是最佳方案。
因此ECMA引入了一个sort()方法,这个方法可以接受一个比较函数作为参数,以便我们指定哪个值位于哪个值的前面。
以下就是一个简单的比较函数:

function compare(value1, value2) {
       if (value1 < value2) {
           return 1;
        } else if {
           return 1;
        } else {
           return 0; 
        }
}

var values = [0,1, 5, 10, 15];
values.sort(compare);
alert(values);       //0,1,5,10,15

实际上这个compare函数也可以如下来写:

function compare(value1, value2) {
    return value2 - value1;
}

相关文章

  • 数组的sort()方法传参疑惑

    在默认情况下,sort()方法按升序排列数组项——即最小的值位于前面,最大的值排在后面,为了实现排序,sort()...

  • js数组排序

    1、sort方法 sort在原数组上进行排序,不生成副本。sort接受一个函数参数,该函数定义排序规则。如果不传参...

  • 由一道数组排序题引发的与V8引擎源码的美丽邂逅

    一、冒泡排序 二、数组重排序 数组的sort()方法传参为函数,并且直接运行了函数对数组中的每一项进行排...

  • sort()介绍

    sort():对数组的元素进行从小到大来排序(会改变原来的数组) 如果在使用 sort() 方法时不带参, 默认排...

  • Java 4

    可变参数 JDK中具有可变参数的类Arrays.asList()方法。 分别传多个参、传数组,传数组又传参的情况。...

  • 实现apply、call、bind方法

    apply方法传参是数组形式,call传参方式是直接传入参数列表 1、实现apply方法 实现call方法 实现的...

  • JavaScript中sort()方法理解

    sort() 方法用于对数组的元素进行排序 sort可以传入参数,也可以不传参数,下面分别说明。 不带参数 排序前...

  • 排序方法

    1、sort()方法 sort()方法是自带的数组排序方法,但要注意的是sort()方法是根据数组中每个元素第一个...

  • js数组排序

    ** 1.数组的sort()方法** sort()方法按照升序排列数组项,会调用每个数组项的toString()转...

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

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

网友评论

      本文标题:数组的sort()方法传参疑惑

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