ajax 调用 javascript 中多个三元运算符的语法

syntax of multiple ternary operators in ajax call in javascript

我正在尝试在 javascript ajax 调用中使用一些 if 语句,我觉得这应该是可能的,只是我的语法可能有误。我正在尝试创建以下时间表部分:

$.ajax({
                type    :  'POST',
                name    :  'Submitting Request',
                url     :   '/breadcrumbs/crumb',
                dataType: 'json',
                data    : {
                    parameters  : paramsObj,
                    schedule: {       paramsObj.isfirst   ? firstSched
                                    : paramsObj.issecond  ? secondSched
                                    : paramsObj.isthird   ? thirdSched
                              }
                          },
            success  : function(){},
            error   : function(jqXHR, status, error) {}
       });

我一直在 "Uncaught SyntaxError: Unexpected token ." 绕过这个街区,特别是在时间表上:

             data   : {
                parameters  : paramsObj,
                schedule: {       paramsObj.isfirst    ? firstSched
                                : paramsObj.issecond ? secondSched
                                : paramsObj.isthird ? thirdSched
                          }
                      },

特别是对于日程安排,这就是我试图用三元运算符做的事情:

if( paramsObj.isfirst === true) { schedule = firstSched}
if( paramsObj.issecond === true){ schedule = secondSched}
if( paramsObj.isthird === true) { schedule = thirdSched}

有人知道我做错了什么吗?

只是相关字段:

schedule: paramsObj.isfirst ? firstSched : 
    paramsObj.issecond ? secondSched :
    paramsObj.isthird ? thirdSched : undefined

全呼:

$.ajax({
    type: 'POST',
    name: 'Submitting Request',
    url: '/breadcrumbs/crumb',
    dataType: 'json',
    data: {
        parameters: paramsObj,
        schedule: paramsObj.isfirst ? firstSched : 
            paramsObj.issecond ? secondSched :
            paramsObj.isthird ? thirdSched : undefined,
        success: function(){},
        error: function(jqXHR, status, error) {}
   });

备注

正如其他人所指出的,链接三元组可能难以阅读,这可能导致错误和维护问题。我个人不介意将它们链接起来,只要它们按行分开,如图所示,这样它们就很容易理解...

嵌套的三元组可能难以阅读。我建议将其重写为 Immediately-executed function expression (IIFE) 以使其更具可读性:

schedule: (function() {
    if (paramsObj.isfirst)
        return firstSched;
    else if (paramsObj.issecond)
        return secondSched;
    else if (paramsObj.isthird)
        return thirdSched;
    else
        return undefined;
})();