代码之家  ›  专栏  ›  技术社区  ›  Mattia Surricchio

使用参数检索对象属性

  •  0
  • Mattia Surricchio  · 技术社区  · 7 年前

    我构建了一个简单的对象,它模拟了以下问题答案的表: Store a table of data in a JavaScript variable

    建模表如下所示:

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

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

    到目前为止,我尝试过这样的方法:

    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") 然后返回 [D,T,M] 与关联 价值观

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

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Alexander Staroselsky    7 年前

    您可以使用 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

    希望有帮助!

    推荐文章