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

浙公网安备 33010602011771号