是否可以在确认框中循环遍历消息数组和相应的选择数组

问题描述

在这里的新手,我已经用谷歌搜索了,找不到答案。


我有问题和相应的选择

var questions = ["Would you like A?","Would you like B?","Would you like C?"
var choices = [A,B,C]

我想在一个循环或循环函数中将两个数组循环在一起,以便在确认框中提出问题,当我确认或不确认时,将记录相应的选择。例如。

“确认问题A也确认选择A”

现在我已经知道了,确认框会遍历所有问题,但是我选择的选项在控制台日志中显示为未定义。

questions.forEach(function(item,index){
        confirm(item,choices[index]);
        console.log(item,choices[index])
        });

我想将用户输入用于“ if”和“ else”语句。

我用A,B和C的代码块来处理这个问题。但是我觉得一个循环可以把它淘汰掉并消除很多多余的代码。也许是一厢情愿?

解决方法

您可以使用confirm用选定的答案填充数组,或使用null,然后使用filter删除null。

var questions = ["Would you like A?","Would you like B?","Would you like C?"]
var choices = ["A","B","C"]
var sel = []

questions.forEach(function(item,index){
        sel.push(confirm(item,choices[index])?choices[index]:null); // null if not selected
        console.log(item,choices[index]) 
        });
console.log(sel.filter(x => x!=null))  // remove nulls

输出(选择A和C)

Would you like A?A
Would you like B?B
Would you like C?C
(2) ["A","C"]