站长资讯网
最全最丰富的资讯网站

javascript数组排序方法是什么

javascript排序方法:1、sort()方法,用于对数组的元素进行排序,语法“arrayObject.sort(sortby)”;2、reverse()方法,用于颠倒数组中元素的顺序,即倒序,语法“array.reverse()”。

javascript数组排序方法是什么

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

js中排序方法

1、sort()方法

sort() 方法用于对数组的元素进行排序。

示例:

var ar1=[2,4,6,8,1,3] var ar2=[2,16,36,8,56] ar1.sort() ar2.sort()//这个方法值只能排序第一位数  也可以字符串进行排序 console.log(ar1)//[1,2,3,4,6,8] console.log(ar2)//[16, 2, 36, 56, 8]  ar2.sort(function(a,b){     return a-b //a-b为升序     //return b-a  //b-a为降序 }) console.log(ar2)//[2, 8, 16, 36, 56]

2、reverse()方法

reverse() 方法用于颠倒数组中元素的顺序。

示例:

var ar1=[2,4,6,8,1,3] ar1.reverse()//此方法为倒序,也就是反过来。并不会进行大小排序 console.log(ar1)//[3, 1, 8, 6, 4, 2]

扩展知识:

冒泡排序

//每轮依次比较相邻两个数的大小,后面比前面小则交换 var b=0//设置用来调换位置的值 var a=[1,9,33,2,5,34,23,98,14]//冒泡排序 for(var i=0;i<a.length;i++){     for(var j=0;j<a.length;j++){         if(a[j]>a[j+1]){             b=a[j]             a[j]=a[j+1]             a[j+1]=b         }     } } console.log(a)//[1, 2, 5, 9, 14, 23, 33, 34, 98]

选择排序

//拿第一个数与后面数相比较,如果比后面的数大则交换 //拿第二个数与后面的数比较,如果比后面的数大则交换 //直到比较到倒数第二个数,最后一个数不用比较 var b=0//设置用来调换位置的值 var a=[1,9,33,2,5,34,23,98,14]//冒泡排序 for(var i=0;i<a.length;i++){     for(var j=i;j<a.length;j++){         if(a[j]>a[j+1]){             b=a[j]             a[j]=a[j+1]             a[j+1]=b         }     } } console.log(a)//[1, 2, 5, 9, 14, 23, 33, 34, 98]

快速排序

  • 先从数列中取出一个数作为基准数

  • 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边

  • 再对左右区间重复第二步,直到各区间只有一个数

function quickSort(arr, i, j) {   if(i < j) {     let left = i;     let right = j;     let mid = Math.floor((left+right)/2);     let temp = arr[left];     arr[left] = arr[mid];     arr[mid] = temp;     let pivot = arr[left];     while(i < j) {       while(arr[j] >= pivot && i < j) {  // 从后往前找比基准小的数         j--;       }       if(i < j) {         arr[i++] = arr[j];       }       while(arr[i] <= pivot && i < j) {  // 从前往后找比基准大的数         i++;       }       if(i < j) {         arr[j--] = arr[i];       }     }     arr[i] = pivot;     quickSort(arr, left, i-1);     quickSort(arr, i+1, right);     return arr;   } }

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号