Javascript三元运算符(?:)在单个块中更改并返回对象
是否可以在Javascript三元运算符(?:)在单个块中更改并返回对象,javascript,Javascript,是否可以在?:中更改字典并在同一块中返回此字典。像这样的a>b 你可以这样做 这可以用?:这样缩短: var result = a > b ? methodOne() : methodTwo(); methodOne()和methodTwo()可以返回结果 希望这能对您有所帮助。是的,您可以通过以下方式来实现: a>b?(dict['c']=“我变了”,dict):; 逗号运算符计算其所有操作数并返回最后一个(最右边)操作数的值 然而,一个合适的if语句可能是这里更具可读性的解决方案
?:
中更改字典并在同一块中返回此字典。像这样的a>b 你可以这样做
这可以用?:这样缩短:
var result = a > b ? methodOne() : methodTwo();
methodOne()和methodTwo()可以返回结果
希望这能对您有所帮助。是的,您可以通过以下方式来实现:
a>b?(dict['c']=“我变了”,dict):;
逗号运算符计算其所有操作数并返回最后一个(最右边)操作数的值
然而,一个合适的if
语句可能是这里更具可读性的解决方案,这就是为什么我建议您使用它而不是构造一个条件(“三元”)表达式
a > b ? (d) => {d['c'] = 'I'm changed'; return dict;}(dict): <some other code>;
a>b?(d) =>{d['c']='I'm change';返回dict;}(dict):;
>var d={}代码>
>2<3?((d)=>{d.a=2;返回d;})(d):5代码>
>对象{a:2}
逗号运算符应该足够了。无需使用return
关键字
var result = (a > b
? (dict['c'] = "I'm changed", dict)
: <some other code> );
var结果=(a>b)
(dict['c']=“我变了”,dict)
: );
如果要返回结果,则它将超出表达式:
return (a > b
? (dict['c'] = "I'm changed", dict)
: <some other code> );
返回(a>b
(dict['c']=“我变了”,dict)
: );
也就是说,我更喜欢使用if语句来解决这个问题。在我看来,长的三元表达式很难理解。从三元表达式返回是没有意义的。可能会显示实际的代码。添加了实际的案例这种构造的目的是编写更少的代码。我认为实现2个附加方法可能更具可读性,但需要做更多的工作。所以我不确定它是否适合那里
var result = (a > b
? (dict['c'] = "I'm changed", dict)
: <some other code> );
return (a > b
? (dict['c'] = "I'm changed", dict)
: <some other code> );