js排序那些事儿

日常项目中虽然大部分情况后台传过来的数据都是排好序的,但是不乏有特殊情况需要用把对象或者数组进行排序,或者排好序的进行打乱。下面就总结了一些日常工作中遇到的一系列排序问题,供自己复制粘贴用。
其实,几乎所有排序都是依托sort()函数来实现的。sort() 方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串UniCode码。因为排序是按照字符串UniCode码的顺序进行排序的,所以首先应该把数组元素都转化成字符串(如有必要),以便进行比较。
语法:arrayObject.sort(sortby)。参数sortby可选,用来规定排序的顺序,但必须是函数。

目录

  • 数组数字升降排序
  • 对象按属性值排序
  • 打乱数组

数组的升降排序

  1. sort默认排序:

    var arr1= ["axx","cxx","bxx","dxx"];var arr2= ["100","200","1000","10000"];arr1.sort();	//["axx","bxx","cxx","dxx"]arr2.sort();	//["100","1000","10000","200"]
  2. 升降序排序

    var arr3= ["100","200","1000","10000"];var arr4= ["100","200","1000","10000"];function s(a, b){	return a-b;}function j(a, b){	return b-a;}arr3.sort(s);	//["100","200","1000","10000"]arr4.sort(j);	//["10000","1000","200","100"]

对象按属性值排序

其实归根到底还是运用了sort()方法:

var arr= [	{name:"王大",age:30},	{name:"刘二",age:29},		{name:"张三",age:28},		{name:"李四",age:27}]function sortBy(key){	return function(a,b){		var val1= a[key];		var val2= b[key];		return val1 - val2;	}}arr.sort(sortBy("age"));

当然了,上面的方法是一个参数,如果遇到一个参数相同时候需要用另一个参数排的话,那么就需要从里面加分支语句了!

打乱数组

这个就比较常见了:

//打乱数组Array.prototype.daluanArr= function(){	function randomsort(a, b) {	    return Math.random()>.5 ? -1 : 1;	    //用Math.random()函数生成 0~1 之间的随机数与 0.5 比较,返回 -1 或 1	}	return this.sort(randomsort);}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值