Js数组排序函数sort()
JS实现多维数组和对象数组排序,⽤的其实就是原⽣sort()函数,语法为:arrayObject.sort(sortby)(sortby可选。规定排序顺序。必须是函数。)
返回值为对数组的引⽤;请注意,数组在原数组上进⾏排序,不⽣成副本。
如果调⽤该⽅法时没有使⽤参数,将按字母顺序对数组中的元素进⾏排序,说得更精确点,是按照字符编码的顺序进⾏排序。要实现这⼀点,⾸先应把数组的元素都转换成字符串(如有必要),以便进⾏⽐较。
eg:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "a"
arr[1] = "f"
arr[2] = "c"
arr[3] = "e"
arr[4] = "b"
arr[5] = "d"
document.write(arr + "<br />")
document.write(arr.sort())
</script>
输出:
a,f,c,e,b,d
a,b,c,d,e,f
如果想按照其他标准进⾏排序,就需要提供⽐较函数,该函数要⽐较两个值,然后返回⼀个⽤于说明这两个值的相对顺序的数字。⽐较函数应该具有两个参数 a 和 b,其返回值如下:
若 a ⼩于 b,在排序后的数组中 a 应该出现在 b 之前,则返回⼀个⼩于 0 的值。
若 a 等于 b,则返回 0。
若 a ⼤于 b,则返回⼀个⼤于 0 的值。
function NumAscSort(a,b)
{
return a - b;
}
function NumDescSort(a,b)
{
return b - a;
}
var arr = new Array( 1, 0, 3, 2, 0 );
字符串转数组方法js
arr.sort(NumDescSort);
alert(arr);
arr.sort(NumAscSort);
alert(arr);
arr.sort();
alert(arr);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论