我有一个将对象文字响应数据转换为数组的函数:
来自:[{"_id":"1","rating":7},{"_id":"2","rating":3}]
收件人:[7,3]
function createArray(fieldVar, responseData) {
var newArray = responseData.map(function(data) {
return data.fieldVar // fails here because I am trying to use the fieldVar variable
});
return newArray
};
我这样称呼函数:
createArray('rating',response.rating_x)
由于data.fieldVar
而失败,如果我将调用硬编码到data.rating
,它就能正常工作。
如何传递评分'或函数调用上的任何其他名称?
答案 0 :(得分:0)
用括号试试
function createArray(fieldVar, responseData) {
var newArray = responseData.map(function(data) {
return data[fieldVar] // access with brackets
});
return newArray
};
使用点符号时,属性必须是有效的JavaScript标识符,即一系列字母数字字符,也包括下划线(“_”)和美元符号(“$”),而不是以数字开头。当您使用变量时,您需要使用括号表示法,否则data.fieldVar将指向可能不存在的属性“fieldVar”。这是因为您要访问的变量不会被评估,而是被视为普通的“字符串”。
有关MDN的更多信息:Property accessors