【问题标题】:Grabbing Data based another array's values基于另一个数组的值抓取数据
【发布时间】:2018-05-20 06:58:05
【问题描述】:

我目前正在尝试创建一个随机生成一组随机问题及其相应答案的页面。 但是,我不知道如何将问题与相应的答案相匹配。

对于问题,我提出了一组数组,对于答案,我提出了另一组:

//Array for Questions
var myWords = [
    'Test1',
    'Test2',
    'Test3',
    'Test4',
    'Test5',
    'Test6',
    'Test7',
    'Test8',
    'Test9',
    'Test10',
    'Test11',
    'Test12',
    'Test13',
    'Test14',
    'Test15'
]

//Array for Answers
var myAnswers = [
    'Answer1',
    'Answer2',
    'Answer3',
    'Answer4',
    'Answer5',
    'Answer6',
    'Answer7',
    'Answer8',
    'Answer9',
    'Answer10',
    'Answer11',
    'Answer12',
    'Answer13',
    'Answer14',
    'Answer15'
]

基于此,我使用以下脚本从第一个数组中挑选 10 个独特的随机问题:

    //randomly pick 10 words
    while(selectWords.length < 10){
        var randomWord = myWords[Math.floor(Math.random() * myWords.length)]
        if(selectWords.indexOf(randomWord) > -1) continue;
        selectWords[selectWords.length] = randomWord;
    }

如何将每个问题与第二个数组中的相应答案联系起来?我希望输出显示在这样的表格中:

问题 1 |答案 1

提前致谢!

【问题讨论】:

标签: javascript arrays


【解决方案1】:

使用包含问题和答案的对象的单个数组:

var myQuestions = [
    { question: "Test1", answer: "Answer1" },
    { question: "Test2", answer: "Answer2" },
    ...
];

然后您可以将这些对象放入您的selectWords 数组中,并在使用它们时访问.question.answer 属性。

【讨论】:

    【解决方案2】:

    一次用答案定义问题会好得多,但如果您坚持提供的输入,另一种选择是将它们map 放在一起,以便在选择随机问题时,您有一个包含问题和答案的对象。

    var myWords=['Test1','Test2','Test3','Test4','Test5','Test6','Test7','Test8','Test9','Test10','Test11','Test12','Test13','Test14','Test15'];
    var myAnswers=['Answer1','Answer2','Answer3','Answer4','Answer5','Answer6','Answer7','Answer8','Answer9','Answer10','Answer11','Answer12','Answer13','Answer14','Answer15'];
    
    const questionsAndAnswers = myWords.map((question, i) => ({ question, answer: myAnswers[i] }));
    const selectWords = Array.from({ length: 10 }, () => (
      questionsAndAnswers.splice(Math.floor(Math.random() * questionsAndAnswers.length), 1)[0]
    ));
    console.log(selectWords);

    【讨论】:

    • 为什么是嵌套数组?
    • 嵌套数组?哪里,什么意思?
    • [[...], [...], ...]
    • 啊,你是对的,谢谢。必须从 splice 数组中选择第一项,即使它只返回一个元素
    • 非常感谢!我决定将这两个数组结合起来,让它们更干净,但这也是一个很好的参考!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    相关资源
    最近更新 更多