2017-10-13 17 views
0

나는 홍보의를 검토하고있어, 그리고 저자는 따라서, 반복 ternaries를 사용하는 상황이있다 -이 반복되는 것 같지만 더 좋은 방법은 바로 마음에 봄하지 않는반복 된 삼항 문장 리펙토링?

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

. 빈 문자열에 할당하고 if 블록에 재 할당하는 방법에 대해 생각해 보았습니다.하지만 그 것이 어떤 클리너라고는 생각하지 않습니다.

도움이 될만한 의견이 있으면 알려 주시고 시간을내어 감사합니다.

답변

2

..

+0

이상,'배열 (3) .fill ("")'더 좋을 수도 경우

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

. 그리고 이것은 하나의 ES6 –

+1

@ Jonasw 예,'Array.fill'입니다. 조건이 더 있으면 여기에서도 잘 작동 할 것입니다. ES6, 지금은 언급하지 않는 경향이 있습니다. 개인적으로 ES5가 필요하다면 개인적으로 무대에 있다고 생각합니다. OP는 그것을 언급해야합니다. 역사 책에 ES5가 속해 있어야합니다. :) 또한 OP는'const'를 사용했기 때문에 이것으로 Ok를해야합니다. – Keith

1

실제 상황에 대한 값을 삽입 할 때 문제를 카레하고 미리 정의 된 기능을 사용할 수 있습니다. 당신은 어쩌면 destructoring 배열을 사용할 수

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

const checkCondition = setCondition(isConditionTrue, ''); 

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