JS排序方法

普通排序

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

  • 调用sort()方法进行排序,注意此排序方法是根据首字母的大小进行排序的,而不是根据数值的大小排序。
  • 如果调用该方法时没有使用参数,是按照字符编码的顺序进行排序。 若是要按照一定标准排序,则需要提供比较函数。

例子:
对于一个整型数组进行排序,将排序的结果打印输出:

<script>
	function sortArray(){
		var example=[12,35,8,14,20,6,90,3];
		console.log("排序前数组:"+example)
		console.log("排序后的数组:"+example.sort())
	}
</script>
<input type="button" value="普通数组排序" onclick="sortArray()" />

运行结果:
在这里插入图片描述
例子:
对于字符串数组进行排序,将排序的结果打印出来

<script>
	function sortArray(){
		var example=['Gblly','Gally','Abbay','Amitt','Zone','Callhu'];
		console.log("排序前数组:"+example)
		console.log("排序后的数组:"+example.sort())
    }
</script>
<input type="button" value="普通数组排序" onclick="sortArray()" />

运行结果:
在这里插入图片描述

按照一定要求排序

按照一定标准排序得提供比较函数

function sortNumbers(a,b){
      return a-b;
}
  • a<b,那么a就应该排在b的前面,则返回一个小于0的值
  • a=b,则返回0
  • a>b,则返返回一个大于0的值

例子:按照数值的大小排序

<script>
	function sortArray(){
	      var example=[12,6,84,25,36,10,2,18,98,75,14,33,158];
	      console.log("排序前数组:"+example)
	      console.log("排序后的数组:"+example.sort(sortNumbers))
	}		
	function sortNumbers(a,b){
		return a-b;
	}
</script>
<input type="button" value="普通数组排序" onclick="sortArray()" />

运行结果:
在这里插入图片描述

对象数组排序

例子:
对一个对象数组进行排序,按照对象的某个属性进行排序,如根据年龄age属性进行排序:

<script>
	function sortBeforeArray(){
		var example=[{name:'Chen',age:'22'},{name:'Liu',age:'6'},{name:'HUHU',age:'15'},{name:'MOMO',age:'11'}];
		console.log("排序前的数组:",example);
		//console.log("排序后的数组:",example.sort(sortByKey('age')));
    };
	function sortAfterArray(){
		var example=[{name:'Chen',age:'22'},{name:'Liu',age:'6'},{name:'HUHU',age:'15'},{name:'MOMO',age:'11'}];
		//console.log("排序前的数组:",example);
		console.log("排序后的数组:",example.sort(sortByKey('age')));
	};
	function sortByKey(key){
		 return function(a,b){
			    var x=a[key];
			    var y=b[key];
			    return x-y;
		 }
	 }	
</script>
<input type="button" value="数组排序前" onclick="sortBeforeArray()" />
<input type="button" value="数组排序后" onclick="sortAfterArray()" />

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值