繁体   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