2014-07-22 76 views
0

我需要使用JavaScript來通過任何STOREID數這個樣本數據或交易的數量進行排序:構建一個JavaScript函數的對象屬性進行排序

transactionList = [ 
    {storeID: 102, transactions: 6}, 
    {storeID: 64, transactions: 22}, 
    {storeID: 295, transactions: 9}, 
    {storeID: 83, transactions: 4}, 
    {storeID: 96, transactions: 14} 
]; 

這裏是我試圖建立自己的函數,其中排序修飾符是不是 「STOREID」 或 「交易」:

function sortTransactions (modifier, transactionList) { 
    return transactionList.sort(function(x, y) { 
    return x.modifier - y.modifier; 
    }); 
} 

所以,如果我在控制檯運行如下命令:

sortTransactions("storeID", transactionList); 

我預計我的transactionList將被排序。但函數只是返回初始值。

當我將console.log(x.modifier,y.modifier)注入混合中時,它顯示一個未定義的值,所以很明顯我在這裏做了一件或多件事情。

我已經搜查,發現這是什麼,我要去的本質,但也似乎沒有翻譯成我自己的工作職能: Javascript object list sorting by object property

任何幫助是非常感謝!

+3

問題就在這裏'x.modifier = X [修改]' – elclanrs

+0

寫一個好的排序功能:1)數據類型,其結果是不同的,你排序數,或者在例如,字符串是18> 123?日期排序怎麼樣? 2)通常我會爲desc或上升開關。 –

回答

1

正如評論指出的那樣,如果你要訪問一個名爲對象的「身份證」屬性,你可以做到這一點有兩種方式:

object.id 
object['id'] 

如果屬性的名稱存儲內字符串雖然,你必須像這樣訪問

var modifier = 'id'; 
object[modifier] 
+0

@Contrapunctus_XIV不用客氣^^ – lelloman

相關問題