重构重复的三元语句?
Refactoring repeated ternary statements?
我正在审查 PR,作者遇到了他们使用重复三元组的情况,因此 -
const foo = isConditionTrue ? 'foo' : '';
const bar = isConditionTrue ? 'bar' : '';
const baz = isConditionTrue ? 'baz' : '';
这似乎是重复的,但不会立即 spring 想到更好的方法。我考虑过分配给一个空字符串并在 if
块中重新分配,但我不觉得那样更干净。
任何有用的建议,感谢您的宝贵时间。
您可以柯里化问题并采用预定义函数,您只需在其中插入真实条件的值。
const setCondition = (condition, default) => value => condition ? value : default;
const checkCondition = setCondition(isConditionTrue, '');
const foo = checkCondition('foo');
const bar = checkCondition('bar');
const baz = checkCondition('baz');
你也许可以使用数组解构..
const isConditionTrue = true;
const [foo,bar,baz] = isConditionTrue ?
["foo", "bar","baz"] : ["","",""];
console.log(foo, bar, baz);
我正在审查 PR,作者遇到了他们使用重复三元组的情况,因此 -
const foo = isConditionTrue ? 'foo' : '';
const bar = isConditionTrue ? 'bar' : '';
const baz = isConditionTrue ? 'baz' : '';
这似乎是重复的,但不会立即 spring 想到更好的方法。我考虑过分配给一个空字符串并在 if
块中重新分配,但我不觉得那样更干净。
任何有用的建议,感谢您的宝贵时间。
您可以柯里化问题并采用预定义函数,您只需在其中插入真实条件的值。
const setCondition = (condition, default) => value => condition ? value : default;
const checkCondition = setCondition(isConditionTrue, '');
const foo = checkCondition('foo');
const bar = checkCondition('bar');
const baz = checkCondition('baz');
你也许可以使用数组解构..
const isConditionTrue = true;
const [foo,bar,baz] = isConditionTrue ?
["foo", "bar","baz"] : ["","",""];
console.log(foo, bar, baz);