2014-09-11 4 views
-1

기본적으로 숫자 집합에 대한 자리 값을 표시하는 스크립트를 만듭니다. 여기 내 스크립트입니다 :자바 스크립트 : 루프 출력 되돌리기

var arrn = '3252'; 
var temp = 0; 
var q = arrn.length; 
var j = 0; 

for (var i = q-1; i >= 0; i--,j++) { 
    if (j!=0) temp = temp + ' + '; 
    { 
     temp += arrn[i] * Math.pow(10, j); 
    } 
} 
alert(temp); 

내 목표는 3000 + 200 + 50 + 2를 달성하는 것입니다하지만 난 + 50 + 200 + 3000이 내가 temp.reverse() & 정렬 기능을 시도했지만하지 않는 것 얻을 일하다. 변경

+1

당신의 코드가 오히려 엉망입니다 작동합니다. 당신은 당신의'if'와 그 다음 중괄호 뒤에 성명을 가지고 있습니다. 나는 코드를 고치려고하지는 않을 것이지만주의 깊게 살펴 봐야한다. 당신은'if (j! = 0) {temp = temp + '+'; temp + = arrn [i] * Math.pow (10, j); }'? 그렇지 않다면 왜 거기에 괄호가 있습니까? – Joe

답변

1

if(j!=0)temp=temp +' + '; 
{ 
    temp +=arrn[i]*Math.pow(10,j); 
} 

Live Example


if(j!=0) { 
    temp=' + ' + temp; 
} 
temp = arrn[i]*Math.pow(10,j) + temp; 

에 사이드 노트 도와주세요 : 첫 번째 코드 블록에 대한 여러분의 괄호 위 매우 오해의 소지가 이다. 당신이 무엇을 :

if(j!=0)temp=temp +' + '; 
{ 
    temp +=arrn[i]*Math.pow(10,j); 
} 

if(j!=0) { 
    temp=temp +' + '; 
} 
temp +=arrn[i]*Math.pow(10,j); 

이 버전의 블록이 if와 연결되지 않은 말을하는 것입니다

if(j!=0)temp=temp +' + '; 
temp +=arrn[i]*Math.pow(10,j); 

, 그것은 단지 독립형 블록입니다.


사이드 노트 # 2 : 당신이 다른 곳에 문자열로 temp를 사용하고 있기 때문에, 내가 ''으로보다는 0으로 초기화한다. Example 문자열이 불필요한 0으로 끝나지 않은 이유는 실제로 입니다. 매우입니다. :-)

+0

@ user2672112 : 새로 고침을 누르면 다른 곳에서 '임시'에 다시 추가하는 게시 이후 잠깐 깨달았습니다. :-) –

0

temp.split("+").reverse().join(" + ") 어때?

+0

그것은 나에게이 folkol을 준다, 2502003000 – user2672112

+0

@ user2672112 : folkol의 현재 대답은 다음과 같다 : http://jsbin.com/cuneco/5 (나는 이런 식으로하지 않을 것이다. 나는 올바른 문자열을 만들 것이다. 목적에 따라 주문하십시오. 그러나 귀하의 공간을 어지럽히는 것 이외의 다른 방법으로 작동합니다.) 네가 아마도 이전 사본을보고 있었고 그 사람이 닌자 편집에서 미끄러 졌는지 모르겠다. –

1

그냥 말 대신 문자열의 시작 부분에 번호를 추가 :

for (var i = q - 1; i >= 0; i--, j++) { 
    if (j != 0) { 
    temp = ' + ' + temp; 
    } 
    temp = arrn[i] * Math.pow(10, j) + temp; 
} 

데모 : http://jsfiddle.net/Guffa/rh9oso3f/

사이드 참고 : 당신은 if 문 다음 코드에서 일부 혼란 괄호를 사용하는 . if 문 다음에 오는 문이 있기 때문에 다음 줄에서 시작하는 대괄호는 코드 블록이되지만 if 문에있는 조건이 참일 때 실행되는 코드라고 생각하는 것은 쉽습니다.

또 다른 참고 사항 : script 태그의 language 속성은 수년 전에 사용되지 않았습니다. 언어를 지정하려면 type="text/javascript"을 사용하십시오.

0

이렇게하면됩니다. 나는 그것이 최적화 될 수 있음을 안다.그러나

var arrn='3252'; 
var temp=0; 

var q=arrn.length; 
var res = []; 
var j=0; 
for(var i=q-1;i>=0;i--,j++) 
{ 
    temp += parseFloat(arrn[i])*Math.pow(10,j); 
    res.push(arrn[i]*Math.pow(10,j)); 
} 
res.reverse(); 
alert(res.join('+') + " = " + temp); 

http://jsfiddle.net/he7p8y5m/

0
var arrn='3252'; 
var temp=new Array(); 

var q=arrn.length; 
for(var i=0;i<=q-1; i++){ 
    temp.push(arrn[i]*Math.pow(10,(q-i-1))); 
} 
temp = temp.join('+'); 
alert(temp);