javascript - 如何使用变量引用对象

标签 javascript arrays json object

<分区>

我有一些测验问题存储在我使用 AJAX 调用的 JSON 中,然后作为变量 allQuestns 存储:

  // Variable stores all quiz questions
  var allQuestns;

  // AJAX request to retrieve quiz questions from external JSON
  $.ajax({
    async: false,
    type: 'GET',
    url: 'https://api.myjson.com/bins/dqt3f',
    data: { get_param: 'value' },
    dataType: 'json',
    success: function (data) {
      allQuestns = data;
    },
    error: function () {
      alert("Unable to locate the quiz questions. Try again soon and contact admin - quiz@palmerhinchliffe.net")
    }
  });

每个测验的问题作为一个对象存储在 JSON 中,该对象引用该测验(qz1、qz2、qz3),每个对象都包含一个问题数组,每个问题数组包含一个问题字符串、一个选项数组, 以及正确的选择。

我想创建一个变量,我可以使用它来代替直接引用 JSON 中的测验对象。所以不是:

alert(allQuestns.qz2[2].question) //This retrieves the question text 
                                  //from the 3rd question of the 2nd 
                                  //quiz

我想使用一个变化的变量来引用测验编号,如下所示:

var quizCounter = "qz2";

alert(allQuestns.quizCounter[2].question);

使用 quizCounter 变量引用对象似乎不起作用。有没有办法做到这一点,或者我必须实际命名对象本身而不是创建一个可以更改的引用。

我希望能够通过使用 quizCounter 为每个测验显示正确的问题,而不是为每个测验使用单独的 html div 和 JS 函数

最佳答案

通过[] 括号表示法而不是. 点表示法访问

var quizCounter = "qz2";

alert(allQuestns[quizCounter][2].question);
//              ^-----------^

关于javascript - 如何使用变量引用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47854326/

相关文章:

javascript - 解构函数的 return 语句,但不替换现有变量

javascript - Jquery Accordion 在点击时填充一个圆圈

javascript - 具有内联函数的 Angular ng-click

javascript - 如何在 JS 的 setInterval 中等待?

c# - 如何将字节数组转换为 int 数组?

php - 如何在 Android + PHP json 请求中处理一系列价格

php - 带有 JSON、AJAX 和 PHP 的数据表不显示任何数据

javascript - 我在这个 javascript 循环操作中做错了什么?

java - 类 Arrays 中重载方法 sort 的意义是什么

json - 使用 URLSession 从服务器获取数据