-1

의미는 무엇입니까? if와 else를 사용하여 자바 스크립트 코드를 모드로 읽을 수있는 코드로 변환

e[i] == "-" && (s > 1 || d === null) && ++s, !s && d !== null && (p.push(e[i]), s = 2), "+-".indexOf(e[i]) < (d = null) && (c = 1); 

어떤 논리없이

+1

축소 된 코드를 리버스 엔지니어링하려고합니까? 이것의 요점은 무엇입니까? –

+0

은 숙제입니까? –

+1

mathparser의 무료 코드 부분이며 해당 문자열에 문제가 있습니다. 그런 구문을 이해할 수 없기 때문에 수정할 수 없습니다. 어떤 도움이라도 환영받을 것입니다! – Mar

답변

2
if (e[i] == "-" && (s > 1 || d === null)) 
    ++s; 

if (!s && d !== null) { 
    p.push(e[i]); 
    s = 2; 
} 

if ("+-".indexOf(e[i]) < (d = null)) 
    c = 1; 

, 마지막 if의 할당은 호소하지 않을 수 있습니다; 그 경우 :

d = null; 
if ("+-".indexOf(e[i]) < null) 
    c = 1; 
+1

감사합니다! :) indexOf()는 null과 비교하기에 무의미한 int를 제공합니다. 이 경우 다른 것으로 대체 된 null 일 수 있습니까? – Mar

+0

"+ -".indexOf ('+') <0 '로 변경하면 이해하기 쉽고 문자 수가 적습니다. – Eric

+0

Eric의 의견은 아마도 코드의 의도를 나타낼 것입니다. "e [i]가'+ '또는''-''가 아닌 경우'c = 1'입니다." 'd = null'은 어떻게 들어 맞습니까? 나는 말할 수 없습니다. 그래서 네, if 문의 두 번째 형태를 사용하고' Irfy

1

약간의 공백과 줄 바꿈을 추가 한번에 많은 sumbols를 읽을 수 없습니다 :

e[i] == "-" && (s > 1 || d === null) && ++s, 
    !s && d !== null && (p.push(e[i]), s = 2), 
    "+-".indexOf(e[i]) < (d = null) && (c = 1); 

참고,이 쉼표 표현이다 - 쉼표로 구분하여 3 개 표현입니다. 각각의 표현은 실제로 당신이하는 방식 때문에 && 작품의 C에서 멀리 이와 얻을 수

condition && action; 

을가는 문입니다. 표현식이 A && B 인 경우 첫 번째 A가 실행되고 은 A의 결과가 true 인 경우에만이 B이어서 실행됩니다. 따라서 자체적으로 A && B;if(A) B;으로 번역 될 수 있습니다. 물론 이것은 전체 식 A && B의 결과가 사용되지 않는 경우에만 작동합니다. 당신이 C의 배경이 제공되지 않는 경우

+0

thx! 어리석은 질문에 대해 유감스럽게 생각하지만, if와 else 키워드로 쓰여질 수 있습니까? – Mar

+1

고마워요! 메신저 가까이에 가까이 이해 :) 실제로 내가 가진 문제는 3 식 : 비교 indexOf() 그 null입니다. AS3은 비교 유형 int가 null로 인해 경고를합니다. 경고 메시지를 피하기 위해 3 번째 표현식을 다시 작성할 수 있습니까? – Mar