2015-09-17 14 views
3

數組我有一個這樣的數組:如何排序與對象的第二屬性

var myarray = [Object { category="21f8b13544364137aa5e67312fc3fe19", order=2}, Object { category="5e6198358e054f8ebf7f2a7ed53d7221", order=8}] 

當然也有我的陣列更多的項目。現在我嘗試在每個對象的第二個屬性上排序。 ('訂單'屬性)

我該如何做到這一點在JavaScript的最佳方式?

非常感謝!

+0

可以傳遞函數(){}來排序功能的陣列。寫你自己的功能,它會完成。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort – Superdrac

回答

3

您可以編寫自己的排序比較功能:

myarray.sort(function(a,b) { 
    return a.order - b.order; 
}); 

比較功能應該返回一個負數,零或正值其排序在列表中向上/向下。

當排序方法比較兩個值時,它將值發送到比較函數,並根據返回值(負值,零,正值)對值進行排序。

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; 
}) 

JSFIDDLE

2

嘗試這樣的:

array.sort(function(prev,next){ 
    return prev.order-next.order 
}) 
0

嘗試

Myarray.sort(function(x,y) 
{ 
    return x.order-y.order 
})