JavaScript数组排序方法
- sort()方法
- sort() 方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的
- 参数:
- 用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的Unicode位点进行排序。
- firstE 第一个用于比较的值
- secondE 第二个用于比较的值
- 返回值:排序后的数组。请注意,数组已原地排序,并且不进行复制。
var arr = [5, 1, 10, 15, 3]; console.log("原数组:", arr); //对数组进行升序排列,但是犹豫sort()会将数字转换为字符串比较,存在10以上的数字并不能正确的排序 arr.sort(); console.log('不使用比较函数:' + arr); //结果:[1, 10, 15, 3, 5] //使用比较函数,可以的到正确的顺序 function compare(v1, v2) { if (v1 < v2) { return -1; } else if (v1 > v2) { return 1; } else { return 0; } } arr.sort(compare); console.log('使用比较函数:' + arr); //结果:[1, 3, 5, 10, 15]
- 也可以改变比较函数的返回值,得到逆序的结果:
var arr = [5, 1, 10, 15, 3]; console.log("原数组:", arr); //对数组进行升序排列,但是犹豫sort()会将数字转换为字符串比较,存在10以上的数字并不能正确的排序 function compare(v1, v2) { if (v1 < v2) { return 1; } else if (v1 > v2) { return -1; } else { return 0; } } arr.sort(compare); console.log('使用比较函数:' + arr); //结果:15,10,5,3,1
- reverse()方法
- reverse() 方法将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。
- 参数:无
- 返回值:改变后的数组
- 注:该方法并不会堆数组进行降序排序,只是反转数组,因此,在使用升序函数后,使用该方法进行反转即可.