函数返回值是否可以作为数组键?

时间:2015-07-14 14:41:11

标签: javascript jquery arrays

我做了一个懒惰的实用函数,我希望将其作为我的数组键传递,但是我遇到了语法错误,是否可以在数组中传递一个函数作为它的键?

function encloseAttrSelector(attr, value)
{
    return '[' + attr + '="' + value + '"]';
}   

...

示例(通常不止一对):

var data = { encloseAttrSelector('name', 'username'):  row.first().text() };

2 个答案:

答案 0 :(得分:6)

ES6 ES2015(该语言的最新官方标准)是的,但在大多数现实生活中没有。但是你可以这样做:

var data = {};
data[encloseAttrSelector('name', 'username')] = row.first().text();

新的ES2015语法是:

var data = { [encloseAttrSelector('name', 'username')] : row.first().text() };

即,通常只是对象初始化表达式中的属性名称的方括号。方括号内可以是任何表达式。

答案 1 :(得分:2)

如果不止一对,请执行以下操作:

var data = {};
data[encloseAttrSelector('name', 'username')] = row.first().text();