2014-07-22 77 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

相关问题