作为条件逻辑,我们使用 if else 语句。但是由于有一个三元运算符,我想知道我是否可以使用该运算符执行多个语句?这里我有一个var index
最初设置为 zero
。通过单击按钮,我使用此索引变量执行一些条件逻辑。当它达到特定值时,我想将其重置为初始值,并更改按钮名称。我在想是否可以使用三元运算符?
目前我的声明是:
(index<ques.length-1) ? btn.value='next' : btn.value='start quiz again';
我在想是否有可能实现这样的目标。它给出了一个错误:
(index<ques.length-1) ? btn.value='next' : btn.value='start quiz again';index=0;
下面的完整代码是关于一个简单的测验应用程序,它显示了单击按钮并更改 button's value property
时的下一个问题。使用基于 index variable value
的三元运算符
var ques=[
{
title:'who is the captain of bangladesh odi team?',
option:['mashrafee','tamim','sakib','mushfic'],
crctAns:'mashrafee'
},
{
title:'who invented ac current?',
option:['nicola tesla','tomas edison','henry ford','graham bell'],
crctAns:'nicola tesla'
},
{
title:'who starred in "TRAINING DAY" movie?',
option:['danzel washington','morgan freeman','lionerdo decaprio'],
crctAns:'danzel washington'
}
];
var setQues=(function(){
var index=0;
var span=document.createElement('span');
span.setAttribute('style','color:crimson;font-weight:20px;');
span.setAttribute('id','myspan');
var div=document.getElementById('mydiv');
var btn=document.getElementById('btn');
return function (){
div.innerHTML='';
span.innerHTML=ques[index].title;
div.appendChild(span);
(index<ques.length-1) ? btn.value='next' : btn.value='start quiz again';index=0;
index++;
}})()
document.getElementById('btn').addEventListener('click',setQues);
#mydiv{
background:lightblue;
border:1px solid skyblue;
width:200px;
height:200px;
box-shadow:-5px 0px
}
<div id='mydiv' ></div>
<input type='button' value='start quiz' id='btn'>
最佳答案
您正在寻找comma operator :
expr1, expr2
就您而言:
(index<ques.length-1) ? btn.value='next' : (btn.value='start quiz again', index=0);
但是,我认为使用条件运算符的副作用并不是一种好的风格。
关于javascript - 是否可以使用三元运算符执行多个操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27849104/