만약

2017-02-14 4 views
0
사실

경우 두 가지 작업 인라인, 여기에 코드 만약 내가 시계를 생성하고 사용을 시도하고 인라인 :만약

h == 24 ? _setWeekDay($this) && (h = 0) : h > 24 ? _setWeekDay($this) && (h -= 24): null; 

그러나 문제가있을 때 시간> (24)의 코드 설정 요일,하지만 돈 ' t는 h - = 24를 뺍니다. 왜 이것이 작동하지 않는지 설명해 주시겠습니까?

+0

'_setWeekDay()'는 무엇을 반환합니까? 사실인가? – alex

+0

에 복귀가 없습니다 –

+1

작업이 D = A와 같이 단순한 경우에만 인라인을 사용해보십시오. B : C. 이 모든 것들이 코드 유지 관리가 쉽지 않습니다. –

답변

1
h == 24 
    ? _setWeekDay($this) && (h = 0) 
    : h > 24 
     ? _setWeekDay($this) && (h -= 24) 
     : null; 

가독성을 높이기 위해 쉽게 나눌 수 있습니다. 문제는 &&으로 달성하려는 대상이 아닙니다. 당신은 너무 많은 if 문을 작성하지 않는 것이 유용한 삼항 연산자를 사용하고 있습니다. 필요한 것은 다음과 같습니다.

h == 24 
    ? (_setWeekDay($this), (h = 0)) 
    : h > 24 
     ? (_setWeekDay($this), (h -= 24)) 
     : null; 

이렇게하면 3 진 조건에서 여러 작업을 수행 할 수 있습니다. jsfiddle

+1

고맙습니다. &&가 잘못되어 있다는 느낌이 들었지만 내 질문에 답했습니다. –

+1

그게 무슨 뜻이야 : D – jdmdevdotnet

+0

이 구조에 대한 이름이 있습니까? '(, )'은 항상 두 번째 표현식을 반환합니다.이 경우에는 ''입니다. @AlGoreRhythm –