Javascript 如何在不重复代码的情况下获得结果?

Javascript 如何在不重复代码的情况下获得结果?,javascript,Javascript,我的目标是提出一个格式与此完全相同的问题: What is your favourite programming language? 0: JavaScript 1: Python 2: Rust 3: C++ 我通过在resisternewswer()方法中的poll对象中分解options数组来实现这一点。我使用了\n,但重复它看起来很可怕。我尝试使用for of循环,但不确定如何实现它。我试图在resisterNewAnswer

我的目标是提出一个格式与此完全相同的问题:

      What is your favourite programming language?
      0: JavaScript
      1: Python
      2: Rust
      3: C++
我通过在
resisternewswer()
方法中的
poll
对象中分解
options
数组来实现这一点。我使用了
\n
,但重复它看起来很可怕。我尝试使用for of循环,但不确定如何实现它。我试图在
resisterNewAnswer()方法中实现这一点

const poll={
问题:“你最喜欢的编程语言是什么?”,
选项:['0:JavaScript','1:Python','2:Rust','3:c++',],
答案:新数组(4)。填充(0),
注册人Wanswer(){
常数[j,p,r,c]=这个选项;
提示(
`你最喜欢的编程语言是什么?\n${j}\n${p}\n${r}\n${c}`
);
},
};

poll.registernewswer()我要做的一件事是在提示符中使用
这个问题,而不是重复它。另外,使用join组合选项将允许您简化,同时能够使用不同数量的选项

const poll={
问题:'',
选项:[],
答案:新数组(4)。填充(0),
注册人Wanswer(){
返回提示符(`${this.question}\n${this.options.join(“\n”)}`
);
},
};
poll.question=“您最喜欢的编程语言是什么?”;
poll.options=['0:JavaScript','1:Python','2:Rust','3:c++'];
log(poll.registernewswer());
poll.question=“问题2?”;
poll.options=['0:JavaScript','1:Python','2:Rust','3:c++'];

log(poll.registernewswer())只需使用
join
方法即可实现:

const poll={
问题:“你最喜欢的编程语言是什么?”,
选项:['0:JavaScript','1:Python','2:Rust','3:C++',],
答案:新数组(4)。填充(0),
注册人Wanswer(){
常数[j,p,r,c]=这个选项;
提示(
`您最喜欢的编程语言是什么?\n${this.options.join('\n')}`
);
},
};

poll.registernewswer()您可以使用任何一个流行的JavaScript模板库:,或

下面是一个使用胡须的示例:

const questionTemplate=`\
{{问题}
{{{#选项}
{{index}}:{{option}
{{/options}}
`;
常量轮询={
问题:“你最喜欢的编程语言是什么?”,
选项:['JavaScript','Python','Rust','C++',],
答案:新数组(4)。填充(0),
注册人Wanswer(){
提示(Mustache.render)(问题模板{
问:这个问题,,
选项:this.options.map((选项,索引)=>({option,索引})),
}));
},
};
poll.registernewswer()
const poll={
问题:“你最喜欢的编程语言是什么?”,
选项:['0:JavaScript','1:Python','2:Rust','3:c++',],
答案:新数组(4)。填充(0),
注册人Wanswer(){
const jprc=`\n${this.options.join('\n')}`
const x=()=>prompt(`您最喜欢的编程语言是什么?${jprc}\nOr-1结束条目`)//x成为一个函数,提示您并返回您输入的内容
变量i=x()
while(i!=-1){this.answers[i%this.options.length]++;i=x()}//防止不正确输入的%逻辑(或者您可以有一个if语句,如果索引不正确,它就不会记录)
},
};
poll.registernewswer();

console.log(poll.answers)
this.options.join('\n')
,或其他任何东西,以获得一个字符串,其中所有部分都连接在一起。您已经拥有的内容非常准确…我终于明白您想要什么了。。你想要几个结果,对吗?我提出了一个答案