前端以数组对象属性值排列对象
数据排序这种东西一般都是后端去排序前端来调接口!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