Javascript三元运算符(?:)在单个块中更改并返回对象

sil*_*der 3 javascript

是否可以在?:更改字典内并在同一块中返回此字典.像这样的东西a > b ? <dict['c'] = 'I'm changed', return dict> : <some other code>;

我需要这个内部map功能.像这样的东西:

var a = [...]
a.map((itm) => return itm.isComposite ? itm[key] = transform(itm[data]); return itm : transform(itm))
Run Code Online (Sandbox Code Playgroud)

Mar*_*ulz 9

是的,可以使用逗号运算符:

a > b ? (dict['c'] = "I'm changed", dict) : <some other code>;
Run Code Online (Sandbox Code Playgroud)

逗号运算符计算其所有操作数并返回最后一个(最右边)的值.


但是,正确的if声明可能是更可读的解决方案,这就是为什么我建议您使用它而不是构造条件("三元")表达式.