首页 > 解决方案 > 使用字符串调用对象

问题描述

我正在尝试创建一个finalResult基于 variable定义变量的程序input。该input变量应该调用 object 内部的一个对象A

var input = "";
var A = {
   AA: {
      result: 0
   },
   AB: {
      result: 1
   }
}
var finalResult = A.input.result;

因此,如果input = "AA",则最终结果应为 0,但如果input = "AB",则最终结果应为 1。

标签: javascriptobject

解决方案


您可以这样做A[input].result,它假定 的值input 作为属性存在于A. 如果该属性不存在,您将在尝试访问result时收到错误消息undefined。您可以通过使用空对象对它进行 OR'ing 来防止这种情况:

(A[input] || {}).result // undefined if A[input] isn’t present

推荐阅读