js-sort排序之用法

sort()是对数组进行排序的方法,例子:

var aa = [11,4,6,2,9,8,5];
document.write(aa.sort());

结果其返回值为:11,2,4,5,6,8,9;也就是说小于10的都正常排了,但大于10的就出现问题了,经查阅w3school上所说:

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
1.若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
2.若 a 等于 b,则返回 0。
3.若 a 大于 b,则返回一个大于 0 的值。

也就是说在对数字进行比较时是先默认将其转化成对应的字符再进行比较的,所以会出现这样的问题,若想比较数字就需提供比较函数:

// function sortNumber(a,b){ //数字比较函数
// return a - b
// }
var aa = [11,4,6,2,9,8,5];
aa.sort(
    function(a,b){
     return a-b //正序,倒序b-a
    }
);
document.write(aa);

结果其返回值为:2,4,5,6,8,9,11

时间: 2024-11-02 21:39:30

js-sort排序之用法的相关文章

List<T>.Sort() 排序的用法

List<T> 可以通过 .Sort()进行排序,但是当 T 对象为自定义类型时(比如自定义模型),就需要 IComparable接口重写其中的方法来实现,实现代码如下: class Program { static Func<Model, int> where = a => a.id; static Func<Model, bool> wherelambda = a => a.id < 3; static void Main(string[] a)

js sort() 排序的问题

默认并非按照大小排序,而是根据Assic来排序的,但接受一个排序函数.所以正确的使用姿势应该是这样的: var arr = [0,1,5,10,15]; function sequence(a,b){ if (a>b) { return 1; }else if(a<b){ return -1 }else{ return 0; } } arr.sort(sequence);

js数组的sort排序的原理和应用

1.js sort()方法的应用: 首先:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较. 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字.比较函数应该具有两个参数 a 和 b,其返回值如下: 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值. 若 a 等于

js数组sort排序的理解

javascript 中 Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列. example1: example2: sort() 方法可以接受一个方法为参数 ,这个方法有两个参数.分别代表每次排序比较时的两个数组项.sort()排序时每次比较两个数组项都会执行这个参数,并把两个比较的数组项作为参数传递给这个函数.当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换. example3:降序排列 example4:升序排列 另外,可以直接把一个无名函数直接放

[Js]表格排序

思路:遍历每个li,病并把它们存放到数组中去,然后通过sort()方法进行排序 <body>    <input type="button" value="排序按钮" id="btn1">    <ul id="ul1">        <li>58</li>        <li>8</li>        <li>31</

C/C++ sort函数的用法

sort函数的用法(#include<algorithm>) 做ACM题的时候,排序是一种经常要用到的操作.如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错.STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n).使用这个函数,需要包含头文件.    这个函数可以传两个参数或三个参数.第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址.也就是说,排序的区间是[a,b).简单来说,有一个数组int a[100

泛型编程与C++标准模板库 : 浅谈sort()排序函数

以前用sort排序的时候,只知道sort函数有如下两种重载方式. template< class RandomIt > void sort( RandomIt first, RandomIt last ); template< class RandomIt, class Compare > void sort( RandomIt first, RandomIt last, Compare comp ); 当时对这些参数也不是很懂,只知道一些简单的用法. 1).比如: 如下代码可以使

js 数组 排序

//1.先定义数组 var cr_json = new Array(); var s_arr_cr = '{ id: ' + hid_JobTicketID + ',fee:' + hid_CrossRegionFee + '}'; var arr_cr = eval('(' + s_arr_cr + ')'); cr_json.push(arr_cr); //排序 cr_json.sort(function (a, b) { return b.fee - a.fee; }); js 数组 排序

cut 和sort 常用的用法

cut 是一个截取命令,截取字段中想要的部分 cut  [选项] [文件] 主要参数 -b: 以字节为单位分割,后面跟一个数字    -b  3 -c:以字符为单位分割,后面跟一个数字    -c  3 -d:可指定分隔符,默认为制表符 -f:指定截取的字段,与-d同时使用 -n:取消分隔多字节分隔符 例: cat 1.txt (1)    cut  -b 3  1.txt  表示以字节定位第三个字节 但是通常cut是和其他命令配合使用 如:cat 1.txt |cut -b 3 1.txt (

C++ sort函数的用法

C++ sort函数的用法 STL有个排序函数sort,可以直接对数组和向量排序. 一.功能:给定区间所有元素进行排序 二.头文件: #include <algorithm> 三.sort函数的参数:可以传两个参数或三个参数. 第一个参数:要排序的区间首地址, 第二个参数:区间尾地址的下一地址.也就是说,排序的区间是[a,b). 例如:数组int a[100],sort(a,a+100)是对从a[0]到a[99]的元素进行排序,默认的排序方式是升序. 对向量v排序:sort(v.begin()