js小记----数组方法sort

在js中数组的用处很大,在很多地方都会用到数组,因为数组用起来比较方便,在数组中有的方法比较简单,有的比较复杂,今天介绍一个很常用但是又容易记混的方法:sort()方法。
这个方法可以直接使用:

		var arr = [5,1,3,6,4,8,7,9];
		var newArr =  arr.sort();//[1,3,4,5,6,7,8,9]

会按照从小到大的顺序返回,是不是觉得很简单呢,我们再换一个数组试试

			var arr = [5,6,3,1,9,7,10,15,45];
			var newArr = arr.sort();// [1, 10, 15, 3, 45, 5, 6, 7, 9]

上面代码为什么会这样的,因为,sort()这个方法只能在10以下的数字进行排序,大于等于10就不行了,还好这个方法里面可以自定义函数,通过自定义的函数来决定是升序还是降序。

var arr = [5,6,3,1,9,7,10,15,45];
			var newArr = arr.sort(function(a,b){
				return a-b;
			});
			console.log(newArr);//[1, 3, 5, 6, 7, 9, 10, 15, 45]

这样输出的就是升序,反过来

var arr = [5,6,3,1,9,7,10,15,45];
			var newArr = arr.sort(function(a,b){
				return b-a;
			});
			console.log(newArr);//[45, 15, 10, 9, 7, 6, 5, 3, 1]

输出的就是降序,但是这个结果是怎么得来的呢?听我慢慢道来
在这里面函数的原理:看返回值:1.返回值为正,则交换两个数位置
2.返回值为负,则两个数不动。
3.为0 ,数组位置不变

var newArr = arr.sort(function(a,b){
				if(a > b){
					return 1;
				}else{
					return -1;
				}
			});
		//这样写就是升序
		var newArr = arr.sort(function(a,b){
				if(a < b){   //在这里改一下就是降序
					return 1;
				}else{
					return -1;
				}
			});
			

每次传入两个数分别赋予给a,b然后进行比较,按照上面的规则就可以按照自己想要的顺序排序,将上面代码简化一下:

var newArr = arr.sort(function(a,b){
				if(a - b > 0){
					return a-b;
				}else{
					return a-b;
				}
			});

在if里这样写就可以直接判断ab的大小,这样可以看出来,无论什么时候只要返回a-b就是升序,所以简化到最后就是

var newArr = arr.sort(function(a,b){
			return a-b;
		});

这就是这个函数的具体实现原理啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值