我正在尝试使用select下拉列表中的值作为Json过滤函数的变量。当我对。(name)的值进行硬编码时,它可以工作,但是当我尝试使用下拉列表中的keyname var时,它返回undefined。
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;
};
答案 0 :(得分:1)
你必须写:
一个[键名]
而不是
a.keyname
答案 1 :(得分:1)
要使用keyName指定的名称引用变量的属性,请使用括号语法作为建议的另一个答案:
a[keyname]
如果keyname是键,则相当于a.key,但允许您使用动态字符串。
a.keyname尝试在a上查找keyname属性,该属性不存在。