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