js中数组中的对象用属性进行排列如果属性值相同再用别的属性进行排列;如果start在 根据start基础上再用expire排序如果expire相同再用create排。
var data = [
{
start: 4,
expire: 1,
create: 1,
},
{
start: 3,
expire: 1,
create: 1,
},
{
start: 2,
expire: 1,
create: 3,
},
{
start: 2,
expire: 1,
create: 2,
},
{
start: 3,
expire: 2,
create: 1,
},
{
start: 1,
expire: 1,
create: 1,
}
];
var data = [
{
start: 4,
expire: 1,
create: 1,
},
{
start: 3,
expire: 1,
create: 1,
},
{
start: 2,
expire: 1,
create: 3,
},
{
start: 2,
expire: 1,
create: 2,
},
{
start: 3,
expire: 2,
create: 1,
},
{
start: 1,
expire: 1,
create: 1,
}
];
var data=[{start:4,expire:1,create:1,},{start:3,expire:1,create:1,},{start:2,expire:1,create:3,},{start:2,expire:1,create:2,},{start:3,expire:2,create:1,},{start:1,expire:1,create:1,}];
data.sort(function(a,b){
result=0;
if(a.start>b.start){
result=1;
}else if(a.start<b.start){
result=-1;
}else{
if(a.expire>b.expire){
result=1;
}else if(a.expire<b.expire){
result=-1;
}else{
if(a.create>b.create){
result=1;
}else if(a.create<b.create){
result=-1;
}
}
}
return result;
});
var data=[{start:4,expire:1,create:1,},{start:3,expire:1,create:1,},{start:2,expire:1,create:3,},{start:2,expire:1,create:2,},{start:3,expire:2,create:1,},{start:1,expire:1,create:1,}];
data.sort(function(a,b){
result=0;
var keys=['start','expire','create'];
for(var i=0,n=keys.length;i<n;i++){
var x = a[keys[i]]>b[keys[i]]?1:(a[keys[i]]<b[keys[i]]?-1:0);
result += Math.pow(10,n-i)*x;
}
return result;
});
优化一下,简单一点:data.sort(function(a,b){
if(a.start!=b.start){
return a.start - b.start;
}
if(a.expire!=b.expire){
return a.expire - b.expire;
}
return a.create - b.create;
});