重构重复的三元语句?

时间:2017-10-13 09:01:47

标签: javascript refactoring ternary-operator

我正在审核PR,并且作者有使用重复三元的情况,因此 -

const foo = isConditionTrue ? 'foo' : '';
const bar = isConditionTrue ? 'bar' : '';
const baz = isConditionTrue ? 'baz' : '';

这似乎是重复的,但一种更好的方法并没有立即浮现在脑海中。我已经考虑过分配一个空字符串并重新分配if块,但我觉得这不是更清洁。

任何有用的建议,谢谢你的时间。

2 个答案:

答案 0 :(得分:2)

你可以使用数组析构函数..

const isConditionTrue = true;
const [foo,bar,baz] = isConditionTrue ? 
    ["foo", "bar","baz"] : ["","",""];
    
console.log(foo, bar, baz);
    
    

答案 1 :(得分:1)

您可以解决问题并采用预定义函数,只需插入真实条件的值。

const setCondition = (condition, default) => value => condition ? value : default;

const checkCondition = setCondition(isConditionTrue, '');

const foo = checkCondition('foo');
const bar = checkCondition('bar');
const baz = checkCondition('baz');