0

我正在尝试将选择下拉列表中的值用作 Json 过滤函数的变量。当我硬编码 a.(name) 的值时,它可以工作,但是当我尝试使用下拉列表中的键名 var 时,它返回未定义。

function sortJson(a, b)
{
    //get sorting dropdown value for key
    var keyname = $('#sortByKey').val();// I want to dynamically set the keyname from dropdown. It traces correctly, so I am getting the value I want.

    if (a.keyname == b.keyname)//works when i hardcode a.name, or a.id etc...
    {
        return 0;
    }
    return a.keyname > b.keyname ? 1 : -1;
};
4

2 回答 2

1

你只需要写:

一个[键名]

代替

a.keyname

于 2013-03-04T16:04:39.733 回答
1

要使用 keyName 指定的名称引用变量的属性,请使用括号语法作为建议的另一个答案:

a[keyname]

如果 keyname 是 key,这相当于 a.key,但允许您使用动态字符串。

a.keyname 尝试查找不存在的 a 上的 keyname 属性。

于 2013-03-04T16:06:20.997 回答