javascript中array()的sort方法

在javascript中的sort()对数组进行排序:

  1. 在都是个位数的情况下:
<script type="text/javascript">
			var arr=[4,1,2,3,5,2,6]
			arr.sort();
			document.write(arr);
		</script>

代码运行如下:
javascript中array()的sort方法_第1张图片

注意:如果出现了十位数,是遵循的Unicode编码来进行的比较,就不能再简单的使用sort()进行排序了。
javascript中array()的sort方法_第2张图片
解决方法:可以在sort()中添加一个回调函数,来指定排序规则;需要为其定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数。
浏览器会根据回调函数的返回值来决定元素的顺序:

  1. 如果返回一个大于0的值,则元素会交换位置。
  2. 如果返回一个小于0的值,则元素的位置不变。
  3. 如果返回一个0,则认为两个元素相等,也不交换位置。
  4. 代码如下:
<script type="text/javascript">
			var arr=[4,11,2,3,5,2,16,59]
			arr.sort(function(a,b){
     
				//前边的大
				if(a>b){
     
					return 1;
				}else if(a<b){
     
					return -1;
				}else{
     
					return 0;
				}
			});
			document.write(arr);
		</script>

运行结果如下:
javascript中array()的sort方法_第3张图片
简洁代码:

<script type="text/javascript">
			var arr=[4,11,2,3,5,2,16,59]
			arr.sort(function(a,b){
     
				//前边的大
				return a-b;
			});
			document.write(arr);
		</script>

解释:当a-b大于0时返回的就是一个大于0的数进行交换位置。反之,若要倒序,使b-a即可。

你可能感兴趣的:(HTML,网页设计,javascript,js)