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,
}
];
uj5u.com熱心網友回復:
sort方法 里面的函式根據你條件進行回傳uj5u.com熱心網友回復:
大概這樣:var data=https://bbs.csdn.net/topics/[{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;
});
uj5u.com熱心網友回復:
或者這樣:var data=https://bbs.csdn.net/topics/[{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;
});
uj5u.com熱心網友回復:
優化一下,簡單一點:
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;
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/152749.html
標籤:JavaScript
上一篇:學完html,css,js以之后該怎么辦才能更好就業?
下一篇:js檔案如何解密
