使用数组创建选择题测验

时间:2019-11-21 04:32:07

标签: javascript html arrays

我是一个完整的初学者,我正在使用数组创建多项选择测验。这些问题具有相同的格式“”,下面的单词与'_________'” 具有相似的含义。因此,我创建了一个数组(?),用于存储要放入'________'的所有单词,另一个包含答案的数组与之对应。

var ques=['apple', 'pencil' ,'juice'];
var ans= ['orange', 'pen','water'];

但是,当我要创建数百个问题时,我认为以以下方式进行操作非常麻烦。

var querep=[ ['apple','orange'], ['pencil','pen'],['juice','water'] ];

所以我尝试改为这样做:

var querep=[ [ques, ans] ];

是的,我知道这对所有人都没有意义,但是我只想合并两个数组列表并允许它执行与
相同的功能     var querep

示例问题: 以下哪个单词与苹果有相似的含义?

作家
橙色橘子
D.vegetable

3 个答案:

答案 0 :(得分:1)

您的方法可能无法满足此答案。但是您可以将其作为数据结构设计的参考。自几年前以来,我做了类似的事情,最后发现自己沉浸在重构阶段并重新做很多工作。

我可以告诉您,涉及很长的问题列表时,可能会有很多问题调查。您应该将其视为一个大对象。与您正在实现的方法不同,它不是通常的数组,因为与查找/遍历目的相关的任何事物都更快。

因此,基本上数据可能看起来像这样:

const questions = {
  "apple": "orange",
  "water": "juice",
  "chicken": "duck",
  ...
}

您仍然可以使用{key,value}对来遍历对象,并且可以解决问题。

在实际情况下,我认为数据结构可能更复杂,通常每个数据结构都有自己的_id,因此对象可能看起来像这样,但是迭代的方法没有改变。

const questions = {
  "12312311414": {
    id: "12312311414",
    quesion: "apple",
    accept: "orange",
  },
  "12312311415": {
    id: "12312311415",
    quesion: "water",
    accept: "juice",
  },
  ...
}

因此,在决定合并两个数组之前,我希望您可以改变主意。

答案 1 :(得分:0)

plan like this.

    // At first write all your questions , options and answers here.
    var questions = [
        {"question" : "what is the capital of india?" , "options" : ["hyderabad","delhi","chennai","bengalore"], "answer" : "hyderabad"},
        {"question" : "what is even number?" , "options" : [1,3,5,8], "answer" :8}
    ];


    // you will get question along with question number here
    var questions_list = {}; var i = 1;
    $.each(questions ,function(k,v){
        questions_list[i] = v;
    i++;
    });

  console.log(questions_list);

答案 2 :(得分:0)

如果您要使用所提到的合并数组,则可以在数组上使用map函数来创建新数组。这里新的querep数组应采用您想要的格式:

var ques=['apple', 'pencil' ,'juice'];
var ans= ['orange', 'pen','water'];
var querep = ques.map(function(val, index){
  return [val, ans[index]]
});