进入11月份来,因为团队fe人力紧缺,外加楼主实习生一枚写东西比较慢,因此一直在加班,没能抽出时间更新本身的博客,早上抽点时间来把昨晚写的函数记录一下。。。bash
最近在处理一组对象,需求里说须要根据某一字段还有升序降序条件来排列对象,在放到table中展现,因而便有了下面这个函数。函数
咱们现定义一个对象,对象以下:ui
var data = [{
name: "deron",
age: 21
}, {
name: "miaolun",
age: 23
}, {
name: "pipi",
age: 18
}, {
name: "yujia",
age: 22
}, {
name: "huangze",
age: 29
}];复制代码
来看一下咱们的函数方法,spa
function sortObj(propertyName,cond) {
return function(object1, object2) {
var value1 = object1[propertyName];
var value2 = object2[propertyName];
if(cond == 1){//降序
if (value2 < value1) {
return - 1;
} else if (value2 > value1) {
return 1;
} else {
return 0;
}
}else if(cond == 0){//升序
if (value2 < value1) {
return 1;
} else if (value2 > value1) {
return - 1;
} else {
return 0;
}
}
}
}复制代码
函数第一个参数为须要排序的对象,第二个参数为升降序,再结合js自己的sort方法来达到排序对象的目的:code
data.sort(sortObj("age",1));复制代码
打印输出结果:对象
Array(5)
0:{name: "CCCCCCCCc", age: 25}
1:{name: "jiang", age: 22}
2:{name: "AAAAAAAAAAAAAA", age: 21}
3:{name: "CCCCCCCCccc", age: 11}
4:{name: "CCCCCCCCcaaa", age: 10}
length:5
__proto__:Array(0)复制代码
好了,去上班了~排序