数组内对象根据某两项属性排序
在工作中遇到了要对数组内对象排序,并且是双重排序,现记录下
function compare(property1,property2){
return function(a,b){
var value1 = a[property1];
var value2 = b[property1];
if(value1 == value2){ //如果第一个参数的值相等,则排序第二个参数
var value3 = a[property2];
var value4 = b[property2];
return value3 - value4;
}else{
return value1 - value2; //如果第一个参数的值不相等,则排序第一个参数
}
}
}
this.sum.sort(compare('channelNum','channelAddress'))
其中,this.sum 是我要排序的数组,'channelNum’是我要判断的数组里每个对象里的其中一个属性,'channelAddress’是我要判断的数组里每个对象里的第二个属性,最后结果正确。