时间:2021-05-18
JavaScript中的Array对象有自己的排序方法sort(),对数组中的数据项进行排序,但是有时候排序结果不尽如人意,比如
var arr = [12, 1, 2, 21, 3];arr.sort();alert(arr); 得到的结果为 1,12,2,21,3这是为什么呢?因为JavaScript中的排序默认按照ascii字符代码进行排序,也就是说,数字也是按照它们的字符串形式排序的。
var strArr = ['a', '2', 'a2', '2a', 'b', '3'];alert(strArr.sort());这个得到什么结果呢? 2,2a,3,a,a2,b
因为 数字的ascii码比字母的小,所以数字排在前面,字母排在后面。
如果想继续让上面的数组arr按照数字进行排序,怎么处理呢?
JavaScript给我们提供了一个入口,可以给sort() 方法传递一个参数,即比较函数,来告诉排序算法值与值之间是大于、小于还是等于关系。
比较函数是有着特定算法的函数。
function compare_fn(value1, value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return 1; } else { return 0; }}将比较函数 compare_fn 传递给sort,再进行排序,然后输出
arr.sort(compare_fn);alert(arr); 得到 1, 2, 3, 12, 21JavaScript中Array对象的sort方法返回值的定义为
负值 : 如果所传递的第一个参数比第二个参数小
零 : 两个值相等
正值 : 如果第一个参数比第二个参数大
上面的比较函数还可以简写为
这个比较的为升序排列
如果想降序排列,直接改变上面的返回值的符号就可以了,给所有返回均取反。
对简写的比较函数就是
function compare_fn(value1, value2) { return -(value1 - value2);}即
function compare_fn(value1, value2) { return value2 - value1;}简单的记法就是:顺序升;逆序降。
以上这篇数组Array的排序sort方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
JavaScript数组sort()方法排序数组的元素。语法array.sort(compareFunction);下面是参数的详细信息:compareFunc
1.方法概述Array的sort()方法默认把所有元素先转换为String再根据Unicode排序,sort()会改变原数组,并返回改变(排序)后的数组 。2.
如果你接触javascript有一段时间了,你肯定知道数组排序函数sort,sort是array原型中的一个方法,即array.prototype.sort()
数组sort排序sort比较次数,sort用法,sort常用描述方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort
Array.prototype.sort方法是对数组进行排序,该方法带一个函数参数,用来指定排序的规则.我们先来看看sort的简单应用:vararr=[2,1,