JS 数组的排序(sort ⽅法)
⼀、普通数组的排序
js中⽤⽅法sort()为数组排序。sort()⽅法有⼀个可选参数,是⽤来确定元素顺序的函数。如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进⾏排序。如:
如果⼀个数组元素是数字,此时还是⽤sort()为数组排序,先看看效果如何:
怎么没有起到效果(按⼤⼩排序),其实,sort⽅法会调⽤每个数组项的toString()⽅法,得到字符串,然后再对得到的字符串进⾏排序。虽然数值15⽐3⼤,但在进⾏字符串⽐较时"15"则排在"3"前⾯(ASCII字符顺序)。显然,这种结果不是我们想要的,这时,sort()⽅法的参数就起到了作⽤,我们把这个参数叫做⽐较函数。
⽐较函数接收两个参数,如果第⼀个参数应该位于第⼆个之前则返回⼀个负数,如果两个参数相等则返回0,如果第⼀个参数应该位于第⼆个之后则返回⼀个正数。
⼆、数组内对象排序
sort函数 js数组项是对象,需要根据数组项的某个属性对数组进⾏排序。 let arr = ['A','C','B','D'] arr .sort () console .log (arr ) // ['A','B','C','D']
1
2
3 let arr = [15,8,25,3] arr .sort () console .log (arr ) // [15,25,3,8]
1
2
3 let arr = [15,8,25,3] arr .sort ((x ,y )=> x - y ) // 正序 console .log (arr ) // [3,8,15,25] arr .sort ((x ,y )=> y - x ) // 倒序
1
2
3
4let person = [ {name :'zs',age :22}, {name :'ls',age :20}, {name :'ww',age :28},]// 如果我们需要按照对象中的age 属性进⾏数组排序person .sort ((a ,b )=>{ return a .age - b .age })console .log (person ) /
/ [{name:'ls',age:20},{name:'zs',age:22},{name:'ww',age:28},]1
2
3
4
5
6
7
8
9
10
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论