JavaScript学习 5.2.5 重排序方法

本文详细解读JavaScript中数组排序方法reverse()和sort()的使用方式及内部工作原理,包括如何反转数组顺序及默认排序行为,并通过自定义比较函数实现自定义排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天学习JavaScript数组中已经存在的两个重排序方法:
(1)reverse()(2)sort()
让我们先看一下这两个方法的名字,英语好的小朋友大概已经知道
第一个方法的作用了吧,没错,这个方法会反转数组项的顺序。
而第二个方法在没有参数传进来的时候,会默认调用数组中
每一项的toString()转型方法,然后比较得到的字符串,以确定如何排序。
具体用法看下面的代码。

<script type="text/javascript">
	//reverse()方法
	var values = [1, 2, 3, 4, 5, 6];
	values.reverse();
	//可以看到输出的结果是6, 5, 4, 3, 2, 1
	alert(values);

	//sort()方法
	var arrayOne = [1, 20, 15, 5];
             arrayOne.sort();
	/*输出的结果是1, 15, 20, 5
	   因为sort()方法在没有参数传递进来的时候
	   会默认的调用数组每一项的toString()方法
	   所以会出现上面的结果*/
	alert(arrayOne);

	/*现在我们来定义一个比较函数compare()
	  比较函数接受两个参数,如果第一个参数应该
	  位于第二个参数之后则返回一个负数;如果两个参数
	  相等,则返回零;如果第一个参数应该位于第二个参数之前,
	  则返回一个正数。*/

	  function compareOne(value1, value2){
	  	if(value1 < value2){
	  		return -1;
	  	}
	  	else if(value1 > value2){
	  		return 1;
	  	}
	  	else{
	  		return 0;
	  	}
	  }

	/* 然后我们把这个函数作为一个参数传递给sort()方法
	   看一下比较的结果*/
	   var arrayTwo = [15, 5, 20, 1];
	  arrayTwo.sort(compareOne);
	   //可以看到输出的结果是1, 5, 15, 20
	  alert(arrayTwo);

	  /*对于数值类型,或者其valueOf()方法会返回数值类型的对象,
	    可以使用一个更简单的比较函数,如下所示。*/

	    function compareTwo(value1, value2){
	    	return value1 - value2;
	    }
</script>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值