【0】Javascript数组排序-一维数组排序-二维数组排序【冒泡】【sort】

- 冒泡排序:

var arr=[1,22,1,23,52,32,12];
		function bubble(arr){
			var i,j,d;
			for(i = 0; i < arr.length; i ++){
				for(j = 0; j < arr.length; j ++){
					if(arr[i] < arr[j]){
						d=arr[j];
						arr[j]=arr[i];
						arr[i]=d;
					}
				}
			}
			return arr;
		}
		document.write(bubble(arr));

执行结果:输出数组arr的升序排列:

[1,1,12,22,23,32,52]

- 利用sort进行排序:

sort方法使数组中的元素按照一定顺序进行排序
语法:ArrayObject.sort(方法函数)。

方法函数可选。规定排序的顺序。一定要是函数
如果不指定“方法函数”,则按照unicode码顺序方法排序;
如果指定“方法函数”,则按照“方法函数”排序。

-不指定“方法函数”,按照unicode码顺序进行排序:

var myarr1=["hello","world","Joe","Javascript"];
var myarr2=[1,3,11,53,21,55,34,76,323,22];
document.write(myarr1.sort()+"
"); document.write(myarr2.sort());

执行结果:

Javascript,Joe,hello,world
1,11,21,22,3,323,34,53,55,76

-指定“方法函数”,按照“方法函数”进行排序:

function sortNum(a,b){
    return a - b;
    }
var arr=[22,1,2,42,33,44,21,87,9,30];
document.write("原数组arr:"	+arr+"
"); document.write("无指定方法的unicode顺序方法排序:"+arr.sort()+"
"); document.write("指定方法函数sortNum()排序:"+arr.sort(sortNum)+"
");

执行结果:

原数组arr:22,1,2,42,33,44,21,87,9,30
无指定方法的unicode顺序方法排序:1,2,21,22,30,33,42,44,87,9
指定方法函数sortNum()排序:1,2,9,21,22,30,33,42,44,87

⚠️注意:

  • 数组调用sort()方法后,是在原数组上进行排序(影响其本身),不会生成新的副本。
  • sort()方法默认是按照字符来进行排序的,若要改变其排序方法,可以自行指定排序规则函数。

- 二维数组排序【冒泡】【sort】

  • 冒泡:
		var arr=[['hello',10],['world',12],['phobe',25],['rose',33],['reachel',30]];
		var i,j,num;
		for(i=0;i

二维数组冒泡排序结果为:

[[“rose”, 33], [“reachel”, 30], [“phobe”, 25], [“world”, 12], [“hello”, 10]]

  • sort:
		var arr=[['hello',22,3],['world',11],['phobe',8],['rose',33],['reachel',30]];
		function num(a,b){
			return a[1]-b[1];
		}
		var cha=arr.sort(num);
		console.log(cha);

二维数组sort方法排序结果为:

[[“phobe”, 8], [“world”, 11], [“hello”, 22, 3], [“reachel”, 30], [“rose”, 33]]

你可能感兴趣的:(javascript数组排序)