使用参数检索对象属性

Retrieve object attribute using a parameter

我构建了一个简单的对象来模拟 table 这个问题的答案:Store a table of data in a JavaScript variable

建模的table是这样的:

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

我想访问和检索单个条目 value_aTensionDissonanceModal 值(例如),将所选参数。

到目前为止我试过这样的事情:

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") 这样调用,然后 return 与 value_a

关联的 [D,T,M] 的值

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

如果没有,我如何传递参数和return相关属性值?

您可以使用 bracket notation 来完成此操作,例如 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

希望对您有所帮助!