簡體   English   中英

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

[英]How to return(true/false) in ternary operators in jQuery/Javascript?

如何在jQuery中使用三元運算符返回?

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將作為繼續到下一個迭代的繼續工作。

請驗證理解並提供解決方案。 如果還有其他方法,請提出建議

更新 :我的解決方案具有大型javascript,並且我為正在執行的實例放置了小片段。 就像in中一樣,也有嵌套的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;
    }
}

三元運算符用於表達式,而不用於語句。 您不能在其中放一個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中,可以在需要語句的地方使用表達式(該語句變為ExpressionStatement ),反之則不能。

您無法在三元數中返回true或false,但是您將三元數放入if-else中以返回true或false。 我不知道采用這種方法是否很好,但是它可以工作。

if(condition ? value_if_true : null)
{
   return false;
}
else {  
    return true;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM