2013-06-07 2 views
0

사용자가 입력 한 여러 값의 직사각형 푸티지를 계산하는 Javacript 코드를 작성했습니다. 여기에 자바 스크립트 코드는 ... 지금 현재로이 배열 방정식을 어떻게 작동시킬 수 있습니까?

var totalLinealFootage = 0; 
for (var i = 0; i <= 24; ++i) 
{ 
    var p = +document.getElementById('pf' + i).value; 
    var f = +document.getElementById('ff' + i).value; 
    var i = (+document.getElementById('if' + i).value)/12; 

    if (!isNaN(p) && !isNaN(f) && !isNaN(i)) 
    { 
     totalLinealFootage += (f+i)*p; 
    } 
} 

에 상관없이 내가 값이없는 totalLinealFootage 입력에 배치 어떤 값?

+0

페이지의 나머지 부분과 관련하여이 부분은 어디에 있습니까? 스크립트 태그의 맨 위에있는 경우 페이지를 맨 아래로 이동하거나 페이지가로드 될 때까지 기다린 다음 실행해야 할 수 있습니다. – teynon

+3

괜찮 았어. ** ** 제공됨 ** : 1. 해당 요소는'input' 요소입니다. 2. 요소에는''pf0'',''pf1'' 등의'id' 속성이 있습니다. 3. 요소가 이미 존재할 때까지 요소에 액세스하는 코드가 실행되지 않습니다. 클릭 또는 무언가에 대한 응답으로 이것을 실행하는 것일 수도 있지만 ...). (자바 스크립트는 블럭 스코프를 가지고 있지 않기 때문에 그 변수들은 실제로 함수 레벨에 있습니다.하지만 위의 경우 무해합니다.) –

+4

루프의 변수로 이미 정의되어 있습니다. – Loris

답변

3

귀하의 재사용을 i (이)라고 생각합니다. 루프가 끝날 때 fori을 처리하면 이 완전히으로 변경 될 수 있습니다.

var i = (+document.getElementById('if' + i).value)/12;i을 24보다 큰 값으로 설정하면 i <= 24 조건으로 인해 다음 반복이 시작될 때 루프가 종료됩니다.

대신 루프 색인과 계산 값에 다른 변수 이름을 사용하십시오.

+0

고맙습니다. 저는 x를 x로 바꾸 었으며 완벽하게 작동합니다. 내가 이걸 잡지 못했다고 믿어. 고마워. –

0

마크 업 :

<input id="pf0" value="1" /> 
<input id="ff0" value="2" /> 
<input id="if0" value="3" /> 

자바 스크립트 :

var totalLinealFootage = 0,i,p,f,j; 
for (i = 0; i < 1; i+=1) { 
    p = document.getElementById('pf' + i).value; 
    f = document.getElementById('ff' + i).value; 
    j = (document.getElementById('if' + i).value)/12; 
    totalLinealFootage += ((f+j)*p); 
    console.log(totalLinealFootage); 
} 

이 나를 위해 일했다. @ T.J와 유사 Crowder는 당신이 입력을 사용하고 있는지 그리고 0에서 24까지의 모든 입력을 가지고 있는지 확인해야한다고 말했다. 또한 루프 내부의 var i를 변경 했으므로 루프 카운트를 제어하는 ​​데 사용 했으므로 혼란스럽고 모든 루프를 재정의하지 않도록 루프 바깥으로 vars를 이동했기 때문에 혼란 스럽습니다.

편집 : 첫 번째 대답도 참조하십시오. 나는 그것이 루프 내부에서 재정의되고 있다고 생각한다.

+1

잘못된 결과가 나옵니다. 'value'는 ** 문자열 **입니다. 그래서'f'가''1''이고'j'''가''2''이면'(f + j)'는''12 "'입니다! 그런 다음'*'을 사용하면 숫자 ('12')로 바뀌고 모든 것이 거기에서 내려갑니다. –

+0

하, 잘 잡으세요. 그냥 p와 f를 1로 나눕니다. 편집 : 마크 업이 어떻게 보이는지 볼 수 있으면 좋겠습니다. – Reece

+0

@ Reece : 약 50 명이 숫자를 매기라고합니다. 가장 인기있는 것 중 하나가 OP 질문에 표시되었습니다 :'+' –

관련 문제