使用参数检索对象属性



我构建了一个简单的对象,它模拟了一个表,遵循这个问题的答案: 在 JavaScript 变量中存储数据表

建模表如下所示:

| Tension | Dissonance | Modal |
value_a  | 1.234   |  5.324     | 7.24  |
value_b  | 3       | 6.341      | 27.3  |

我想访问和检索单个条目value_a(例如)的TensionDissonanceModal值,将所选参数传递给函数。

到目前为止,我尝试了这样的事情:

var myObj = {
value_a:{D:3.944,T:1.1606,M:5.3893},
value_b:{D:2,T:6.543,M:5.10},
myMethod: function(params) {
console.log(params);
console.log(this.params); //since this.value_a is a correct expression, i thought this might work, but it doesn't
}
};

我希望能够像myObj.myMethod("value_a")一样进行调用,然后返回与value_a关联的[D,T,M]的值

我尝试了这种方式(我知道它不起作用),但我不知道是否可以使用参数作为属性的选择器。

如果没有,如何传递参数并返回相对属性值?

您可以使用括号表示法(如someObject[property_name])来执行此操作。括号内需要是字符串或符号。

var myObj = {
value_a: { D:3.944, T:1.1606, M:5.3893 },
value_b: { D:2, T:6.543, M:5.10 },
myMethod: function(params) {
console.log(params);
console.log(this[params]);
}
};
myObj.myMethod("value_a");
myObj.myMethod("value_b");
myObj.myMethod("foo"); // undefined

希望对您有所帮助!

最新更新