将对象键名称参数传递给函数

时间:2016-07-05 13:47:53

标签: javascript

我有以下函数,它采用数据集,字段名称和搜索字符串,然后使用ES2015的箭头函数来查找结果。

示例呼叫是:

SET ARITHABORT ON;
SET ARITHIGNORE OFF;

我需要从函数中的参数构建它,但我无法获取字段名称。

功能:

var whatever = myDataSet.find(entry => entry.name === 'John');

我打电话给:

findSingle: function(dataSet, fieldName, searchString){
    return dataSet.find(entry => entry.fieldName === searchString);
}

然后我希望它可以打电话:

my.nameSpace.findSingle(dataSetName, 'name', 'John');

但它失败了。 (如果我硬编码dataSetName.find(entry => entry.name=== 'john'); 它按预期工作)我很确定它是因为我传递一个字符串作为entry.name的对象属性但是我可以& #39;想到另一种方法来做到这一点。

是否可以将字符串传递给这样的对象属性,还是应该以不同的方式进行?

1 个答案:

答案 0 :(得分:2)

findSingle: function(dataSet, fieldName, searchString){
    return dataSet.find(entry => entry[fieldName] === searchString);
}

为了能够使用变量来获取对象属性,必须使用括号表示法(object [key])。点符号(object.key)按字面解释,并查找名为“key”的键。

在你的情况下,entry.fieldName等于entry ['fieldName']。要使用名为fieldName的变量,必须执行entry [fieldName]。