是否可以使用三元运算符执行多个操作

时间:2015-01-08 20:38:58

标签: javascript

作为条件逻辑,我们使用if else语句。但是因为有一个ternery运算符,我想知道我是否可以使用此运算符执行多个语句?这里我有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'>

1 个答案:

答案 0 :(得分:3)

您正在寻找comma operator

expr1, expr2

在你的情况下:

(index<ques.length-1) ? btn.value='next' : (btn.value='start quiz again', index=0);

但是,我认为使用条件运算符的副作用并不是好的风格。