位置:首页 > 软件操作教程 > 编程开发 > JavaScript > 问题详情

JavaScript 数组排序

提问人:刘团圆发布时间:2020-11-25

■知识点

使用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;

}


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部