前端以数组对象属性值排列对象

数据排序这种东西一般都是后端去排序前端来调接口!0.0

闲的没事自己写了一个简单的排序

数组:

const cats = [
			  { name: 'Tom', weight: 800 },
			  { name: 'Lucy', weight: 400 },
			  { name: 'Lily', weight: 700 },
			  { name: 'Jerry', weight: 10 },
			  { name: 'Jerry', weight: 20 },
			  { name: 'Jerry', weight: 220 },
			  { name: 'Jerry', weight: 110 },
			  { name: 'Jerry', weight: 930 },
			  { name: 'Jerry', weight: 3 },
			  { name: 'Jerry', weight: 30 },
			  { name: 'Jerry', weight: 11 },
			  { name: 'Jerry', weight: 5 },
			  { name: 'Jerry', weight: 95 }
			]

  数组的原型:

Array.prototype.objSort=function(opt,iscending){
				var arr=[],arr1=[];	
				if(!this[0][opt]){
						console.log(opt+"不存在")
						return opt+"不存在";
					}
				this.forEach(function(item,index){
					arr.push(item[opt]);
				})
				if(iscending>0){
					arr.sort(ascending)
				}else if(iscending<0){
					arr.sort(descending)
				}else{
					console.log("尼玛是不是脑残,玩呢!!!!!!!!")
					return "尼玛是不是脑残,玩呢!!!!!!!!"
				}
				function ascending (pre,next){
					if(pre<next){
						return -1
					}
					if(pre>next){
						return 1
					}
					if(pre=next){
						return 0
					}
				}
				function descending (pre,next){
					if(pre<next){
						return 1
					}
					if(pre>next){
						return -1
					}
					if(pre=next){
						return 0
					}
				}
				for(var i = 0; i< arr.length ; i++){
					this.forEach(function(item,index){
					if(item[opt]==arr[i]){
						arr1.push(item)
						return false;
					}
				})
				}
				return arr1
			}
		console.log(cats.objSort('weight',0))

  调用时的第一个参数是你要排序的属性,

第二个参数是你要牲畜还是降序,

如果大于0,则是升序,小于0,则是降序,别小于零,console.log()的信息不好看。玩呢!0.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-10-12 17:17  风吹麦浪打  阅读(167)  评论(0编辑  收藏  举报