js中的数组对象排序(⽅法sort()详细介绍)
定义和⽤法
sort() ⽅法⽤于对数组的元素进⾏排序。
语法
arrayObject.sort(sortby)
参数sortby:可选。规定排序顺序。必须是函数。
返回值
对数组的引⽤。请注意,数组在原数组上进⾏排序,不⽣成副本。
普通数组排序:
sort函数 jsjs中⽤⽅法sort()为数组排序。sort()⽅法有⼀个可选参数,是⽤来确定元素顺序的函数。如果这个参数被省略,那么数组中的元素将按照
进⾏排序。如:
字母A、B的ASCII值分别为65、66,⽽a、b的值分别为97、98,所以上⾯输出的结果是 ["A", "B", "a", "b"]
如果⼀个数组元素是数字,此时还是⽤sort()为数组排序,先看看效果如何:
怎么没有起到效果(按⼤⼩排序),其实,sort⽅法会调⽤每个数组项的toString()⽅法,得到字符串,然后再对得到的字符串进⾏排序。虽然数值15⽐3⼤,但在进⾏字符串⽐较时"15"则排在"3"前⾯()。显然,这种结果不是我们想要的,这时,sort()⽅法的参数就起到了作⽤,我们把这个参数叫做⽐较函数。
⽐较函数接收两个参数,如果第⼀个参数应该位于第⼆个之前则返回⼀个负数,如果两个参数相等则返回0,如果第⼀个参数应该位于第⼆个之后则返回⼀个正数。
数组对象排序:
数组项是对象,需要根据数组项的某个属性对数组进⾏排序,要怎么办呢?其实和前⾯的⽐较函数也差不多
下⾯这个是我项⽬的实例:
此时想PX字段⼤⼩排序,我是这样做的:
sort()函数的应⽤,JS 中打乱数组
JS中,要打乱数组有很多⽅法,⽹上流传⼀个国外⼈写的⽅法,我认为是最精简的了(下⾯是项⽬⾥应⽤的例⼦,登录界⾯画H5lock):
function randomsort(a, b) {
return Math.random()>.5 ? -1 : 1;  //⽤函数⽣成0~1之间的随机数与0.5⽐较,返回-1或1
}
this.number_arr = [0,1,2,3,4,5,6,7,8,9];
this.number_random_arr = this.number_arr.sort(randomsort);
转载于:wwwblogs/aixue/p/7064251.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。