javascript - JS/ANGULAR 使用 var 的值作为另一个对象的键

标签 javascript angularjs variables var func

我正在尝试从对象获取变量,但变量键来自另一个变量的值。

这是我想要解释的内容:

vm.getQuestion = function(category) {
        switch (category) {
          case "personal":
            var query = vm.queryBank.personal[vm.currentQueryNum];
            break;
          case "taste":
            var query = vm.queryBank.taste[vm.currentQueryNum];
            break;
          case "skills":
            var query = vm.queryBank.skills[vm.currentQueryNum];
            break;
          case "habits":
            var query = vm.queryBank.habits[vm.currentQueryNum];
            break;
          case "feedback":
            var query = vm.queryBank.feedback[vm.currentQueryNum];
            break;
          case "usabilty":
            var query = vm.queryBank.usabilty[vm.currentQueryNum];
            break;
          case "hobbies":
            var query = vm.queryBank.hobbies[vm.currentQueryNum];
            break;
          case "custom":
            alert('Not yet baba!');
            break;
          default:
            console.log('category not valid: '+category);
        }
        vm.currentQuery = query;
    }

我只想做的不是这一切:

vm.currentQuery = vm.queryBank.category[vm.currentQueryNum];

category实际上是一个带有category键的var时,例如category的值应该是“personal”,然后它将访问对象内的个人项目。

最佳答案

if ( typeof vm.queryBank[ category ] === 'undefined' ) {
  throw 'Unsupported category "' + category + '".';
}
vm.currentQuery = vm.queryBank[ category ][ vm.currentQueryNum ];

关于javascript - JS/ANGULAR 使用 var 的值作为另一个对象的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37101229/

相关文章:

Javascript 确保三元表达式中的值 "true"的最佳方法是什么

javascript - angularjs 使用 .map 不是一个函数

javascript - 我如何更改页面刷新 angular js 上的 URL

c# - 在 C# 中销毁变量或数组

javascript - 将返回函数分配给另一个变量(this)

MYSQL,在同一语句中分配和读取变量

javascript - 单击另一个 select2 下拉列表时如何保持 select2 下拉事件打开

javascript - 替换HTML js后函数不再绑定(bind)

javascript - 在 AngularJS 中,如何使用指令创建具有更改变量名称的模板?

angularjs - 获取 AngularJS orderBy 对两个方向进行排序