如何通过变量值动态访问对象属性

时间:2019-02-27 10:28:07

标签: javascript jquery ajax

我正在使用AJAX将数据发送到控制器并进行检索。当我有console.log(result.ans2.pass)时,它会起作用。

但是console.log(result.ans + x + .pass)却一直给我一个错误:

  

期望的表达式,得到'。'

$.ajax({
  type: "POST",
  url: 'http://some-url',
  dataType: "json",
  data: {
    datasent: dataKey
  },
  cache: false,
  success: function(result) {
    var x = 2;
    console.log(result.ans + x + .pass)
  }
});

2 个答案:

答案 0 :(得分:2)

要使用字符串访问对象的属性,您需要使用方括号表示法:

console.log(result['ans' + x].pass)

答案 1 :(得分:2)

您不能像尝试使用dot notation那样动态地添加到变量名。相反,您可以使用bracket notation和串联,以便可以使用字符串访问属性名称:

console.log(result["ans"+x].pass)