2015-05-20 45 views
-2

如何在jQuery中使用三元運算符返回?如何在jQuery/Javascript中的三元運算符中返回(true/false)?

myfunc: function() { 
    for(i = 0; i < 10; i++) { 
     (6 == i) ? Do_This_and_This : return true; 
    } 
    //Error: Expected an operand: but found return false or true. 
} 

按照諒解返回false會返回到功能,打破循環和返回true會繼續工作,其移動到下一個迭代。

請驗證理解併爲其提供解決方案。如果還有其他的方法可以,請建議

UPDATE:我的解決方案有很大的javascript,並且我爲它的一個實例放了一小段代碼。 像在嵌套ifs和嵌套三元運算符一樣。讓我們給更多的代碼片段

myfunc: function() { 
    for(i = 0; i < 10; i++) { 
     ($.inArray(questionNumber, questions) > -1) ? ((Ra === "") ? Report= Report+"<tr><td>lakslak</td></tr>" : Report= Report+"<tr><td>lasaaakslak</td></tr>") : return false; 
    } 
} 
+1

'myfunc:function(){return false; }'??? – Bergi

+0

你不需要條件運算符'return 6 == i;' – Satpal

+0

@Satpal 不工作 - >(1 == 1)? return(1!= 1):return(1 == 1); – fatherazrael

回答

8

三元運算符用於表達式,而不是語句。您不能在裏面放置return - 如果需要,請使用if聲明。

然而,在你的情況下,可以輕鬆移動return外:

return (6 == i) ? false : true; 

雖然你最好做

return 6 != i; 

爲您更新的代碼,我建議使用

myfunc: function(){ 
    for (var i=0; i<10; i++) { 
     if ($.inArray(questionNumber, questions) > -1) 
      Report += (Ra==="") ? "<tr><td>lakslak</td></tr>" : "<tr><td>lasaaakslak</td></tr>"; 
      // or even 
      //  += "<tr><td>"+(Ra===""?"lakslak":"lasaaakslak")+"</td></tr>"; 
     else 
      return false; 
    } 
} 

您不能在一種情況下使用條件運算符而不在另一種情況下返回,因爲return語句,而條件運算符的操作數是表達式,而不是語句。在JavaScript中,您可以使用預期有語句的表達式(它將成爲表達式聲明),但反之亦然。

+0

請理解這種情況。讓我改變有以下聲明 - > ($ .inArray(questionNumber,questions)> -1)? ((RA === 「」) 報告=報告+? 「​​lakslak 」 :報告=報告+「 ​​lasaaakslak」) :返回true; – fatherazrael

+0

@fatherazrael:爲此,請使用'if else'語句。 – Bergi

+0

我不能在三元運算符中做到這一點,或建議一些方法來做到這一點? – fatherazrael