我正在尝试写一个if if else if
(!contract.hasOwnProperty('COMMIT_CONTRACT') ? '1') : (contract.hasOwnProperty('COMMIT_CONTRACT') ? '2' : '3')
然而,这未能评估。
我开始时:
(!contract.hasOwnProperty('COMMIT_CONTRACT')) ? '1' : '2')
但根据这里你可以链接它们:javascript shorthand if statement, without the else portion
但它没有正确评估。我做错了什么,如何解决?
答案 0 :(得分:1)
你搞砸了括号(
()
)。
根据我的理解,
这是您的第一个条件:!contract.hasOwnProperty('COMMIT_CONTRACT')
,
第一个条件的if
部分是'1'
,
您的第一个条件的else
部分是第二个条件:contract.hasOwnProperty('COMMIT_CONTRACT')
,
第二个条件的if
部分为'2'
,
您else
的第二个条件是'3'
。
让我们添加一些括号,使我们以及编译器更具可读性,
( !contract.hasOwnProperty('COMMIT_CONTRACT') ) ? '1' : ( contract.hasOwnProperty('COMMIT_CONTRACT') ? '2' : '3' )
有趣的是,你永远不会得到'3'
。
答案 1 :(得分:1)
你不需要围绕一切的所有()。这样可以正常工作:
var variable = !contract.hasOwnProperty('COMMIT_CONTRACT') ? '1' : contract.hasOwnProperty('COMMIT_CONTRACT') ? '2' : '3';