Javascript 选择题的循环?

Javascript 选择题的循环?,javascript,for-loop,Javascript,For Loop,建立一个测验。我有4个多选选项,我想用JS填充。每个选项都有文本和相应的图标。我让“问题”部分发挥作用,但我似乎无法让选择发挥作用。我试图遍历这4个选项(每个选项都有一个指定的数据值,该值在最后决定您的答案),但我无法从嵌套数组中访问这些选项,即使我只是console.log(问题[0][1]);有什么建议吗?我应该使用另一种for循环吗?我是否应该分解数组并分别遍历所有内容(这似乎不是很有效) 让问题=[{ 问题:“你介意人群吗?”, 图标:{ 选项1:“Q1_A.svg”, 选项2:“Q1

建立一个测验。我有4个多选选项,我想用JS填充。每个选项都有文本和相应的图标。我让“问题”部分发挥作用,但我似乎无法让选择发挥作用。我试图遍历这4个选项(每个选项都有一个指定的数据值,该值在最后决定您的答案),但我无法从嵌套数组中访问这些选项,即使我只是console.log(问题[0][1]);有什么建议吗?我应该使用另一种for循环吗?我是否应该分解数组并分别遍历所有内容(这似乎不是很有效)

让问题=[{
问题:“你介意人群吗?”,
图标:{
选项1:“Q1_A.svg”,
选项2:“Q1_B.svg”,
选项3:“Q1_C.svg”,
选项4:“Q1_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
},
{
问题:“你想在旅行中呆在哪里?”,
图标:{
选项1:“Q2_A.svg”,
选项2:“Q2_B.svg”,
选项3:“Q2_C.svg”,
选项4:“Q2_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
},
{
问题:“你喜欢什么活动?”,
图标:{
选项1:“Q3_A.svg”,
选项2:“Q3_B.svg”,
选项3:“Q3_C.svg”,
选项4:“Q3\u D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
}
];
//转换为数组,以便可以在其上使用数组函数
const choice=Array.from(document.getElementsByClassName('choice_text');
ChoiceCounter=0;
choicesLoop=()=>{
choice.forEach(choice=>{
const number=choice.dataset['number'];
choice.innerHTML=questions.choices['choice'+number];
ChoiceCounter++;
});
};

A

选项1

B

选项2

C

选项3

D

选项4


您需要将显示的问题编号传递到您的
选项循环
(或者这可能就是
选项计数器
在代码中的内容,但您忘记在正确的位置使用它)

让问题=[{
问题:“你介意人群吗?”,
图标:{
选项1:“Q1_A.svg”,
选项2:“Q1_B.svg”,
选项3:“Q1_C.svg”,
选项4:“Q1_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
},
{
问题:“你想在旅行中呆在哪里?”,
图标:{
选项1:“Q2_A.svg”,
选项2:“Q2_B.svg”,
选项3:“Q2_C.svg”,
选项4:“Q2_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
},
{
问题:“你喜欢什么活动?”,
图标:{
选项1:“Q3_A.svg”,
选项2:“Q3_B.svg”,
选项3:“Q3_C.svg”,
选项4:“Q3\u D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
}
];
//转换为数组,以便可以在其上使用数组函数
const choice=Array.from(document.getElementsByClassName('choice_text');
ChoiceCounter=0;
choicesLoop=(问题ID)=>{
choice.forEach(choice=>{
const number=choice.dataset['number'];
choice.innerHTML=问题[questionId]。选项['choice'+数字];
ChoiceCounter++;
});
};
选择循环(0)

A

选项1

B

选项2

C

选项3

D

选项4


您需要将显示的问题编号传递到您的
选项循环
(或者这可能就是
选项计数器
在代码中的内容,但您忘记在正确的位置使用它)

让问题=[{
问题:“你介意人群吗?”,
图标:{
选项1:“Q1_A.svg”,
选项2:“Q1_B.svg”,
选项3:“Q1_C.svg”,
选项4:“Q1_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”,
选项3:“我不管哪种方式”,
选项4:“人群意味着有值得一看的东西”,
}
},
{
问题:“你想在旅行中呆在哪里?”,
图标:{
选项1:“Q2_A.svg”,
选项2:“Q2_B.svg”,
选项3:“Q2_C.svg”,
选项4:“Q2_D.svg”,
},
选择:{
选择1:“人群不会打扰我”,
选择2:“我更喜欢走出老路”
choicesLoop = (questionId) => {
  choice.forEach(choice => {
    const number = choice.dataset['number'];
    choice.innerHTML = questions[questionId].choices['choice' + number];
    choicesCounter++;
  });
};
choicesLoop = () => {
  choice.forEach(choice => {
    const number = choice.dataset['number'];
    choice.innerHTML = questions[choicesCounter].choices['choice' + number];
    choicesCounter++;
  });
};