我有一个这样的数组:
var myarray = [Object { category="21f8b13544364137aa5e67312fc3fe19", order=2}, Object { category="5e6198358e054f8ebf7f2a7ed53d7221", order=8}]
当然,我的阵列中还有更多项目。现在我尝试在每个对象的第二个属性上进行排序。 (' order'属性)
如何在javascript中以最佳方式执行此操作?
非常感谢!
答案 0 :(得分:3)
您可以编写自己的排序比较功能:
myarray.sort(function(a,b) {
return a.order - b.order;
});
比较函数应返回负值,零值或正值,以便在列表中向上/向下排序。
当sort方法比较两个值时,它会将值发送到compare函数,并根据返回的(负,零,正)值对值进行排序。
答案 1 :(得分:2)
试试这个
//ascending order
myarray.sort(function(a,b){
return a.order-b.order;
})
//descending order
myarray.sort(function(a,b){
return b.order-a.order;
})
答案 2 :(得分:2)
试试这样:
array.sort(function(prev,next){
return prev.order-next.order
})
答案 3 :(得分:2)
您可以执行以下操作
myarray.sort(function(a,b){
return a.order-b.order;
})
供参考 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
答案 4 :(得分:0)
编写自己的比较功能
function compare(a,b) {
if (a.last_nom < b.last_nom)
return -1;
if (a.last_nom > b.last_nom)
return 1;
return 0;
}
objs.sort(compare);
来源:Sort array of objects by string property value in JavaScript
答案 5 :(得分:0)
尝试
Myarray.sort(function(x,y)
{
return x.order-y.order
})