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;
})();
我正在尝试在 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;
})();