JavaScript 数组排序
■知识点
使用reverse()方法能够颠倒数组元素的顺序。
使用sort()方法能够根据一定条件对数组元素进行排序。如果调用Sort()方法时没有传递参数,则按字母顺序对数组中的元素进行排序。
■实例设计
【示例1】在下面的示例中,将根据排序函数比较数组中每个元素的大小,并按从小到大的顺序执行排序。
function f( a, b ){ //排序函数
return ( a - b ) //返回比较参数
}
var a = [3, 1, 2, 4, 5, 7, 6, 8, 0, 9]; //定义数组
a.sort(f); //根据数字大小由小到大进行排序
console.log( a ); //返回数组[0,1,2, 3, 4,5, 6, 7,8,9]
如果按从大到小的顺序执行排序,则可以让返回值取反。
function f ( a, b ) { //排序函数
return -( a - b ) //取反并返回比较参数
}
var a = [3, 1, 2, 4, 5, 7, 6, 8, 0, 9]; //定义数组
a.sort (f) ; //根据数字大小由大到小进行排序
console.log ( a ); //返回数组[ 9, 8,7,6, 5, 4,3,2,1,0]
【示例2】根据奇偶性质排列数组。
SOrt()的用法比较灵活,主要是排序函数比较。例如,如果根据奇偶数顺序排列数组,只需要判断排序函数中两个参数的奇偶性,并决定排列顺序即可。
function f( a, b ){ //排序函数
var a = a % 2; //获取参数a的奇偶性
var b = b % 2; //获取参数b的奇偶性
if ( a == 0 ) return 1; //如果参数a为偶数,则排在左边
if( b == 0 ) return -1; //如果参数b为偶数,则排在右边
}
var a = [3, 1, 2, 4, 5, 7, 6, 8, 0, 9]; //定义数组
a.sort( f ); //根据数字大小由大到小进行排序
console.log( a ); //返回数组[3,1,5,7,9,0,8,6,4,2]
sort()方法在调用排序函数时,将每个元素值传递给排序函数,如果元素值为偶数,则保留其位置不动;如果元素值为奇数,则调换参数a和b的显示顺序,从而实现对数组中所有元素执行奇偶排序。如果希望偶数排在前面,奇数排在后面,只需要取返回值即可。排序函数如下:
function f( a, b ){
var a = a % 2;
var b = b % 2;
if( a == 0 ) return -1;
if( b == 0 ) return 1;
}
点击加载更多评论>>