2013-08-12 3 views
-2

두 개의 다른 합계를 기반으로 배열을 채우는 방법에 대해 누군가가 나를 깨우쳐 주길 바랬습니다.두 개의 합으로 배열 채우기

var startingIncome = 30000; 
    var startingIncomeArr = []; 

    startingIncomeArr[0] = startingIncome; 
    for (var i = 1; i < 100; i++) { 

     if (i <= 45) { 
      startingIncome += (startingIncome/100 * 3); 
     }else { 
      startingIncome += (((startingIncome/100) * 3)/2); 
     } 
     startingIncomeArr[i] = startingIncome; 
    } 

기본적 I의 배열 인덱스 (45)가 하나의 합을 이용하여 다음 인덱스가 어떤 이유 45.

도달 한 후에 다른 SUM (두 가지로 나누어)로 변경되는 때까지 채워 져야 할 합계는 45에 도달 한 후에 2로 나눈 적이 없습니다.

내가 잘못 가고있는 부분에 대한 생각은 인정 될 것입니다.

편집 :

그것은 내 합계가 떨어져, 나는 전체 합계를 분할하지 하였다 보인다.

var startingIncome = 30000; 
    var startingIncomeArr = []; 

    startingIncomeArr[0] = startingIncome; 
    for (var i = 1; i < 100; i++) { 

     if (i <= 45) { 
      startingIncome += (startingIncome/100 * 3); 
     }else { 
      startingIncome += (startingIncome/100 * 3); 
      startingIncome /= 2; 
     } 
     startingIncomeArr[i] = startingIncome; 
    } 
    console.log(startingIncomeArr); 
+0

정확히 무엇이 발생할 것으로 예상됩니까? 45 %까지 가치의 3 %를 추가하고 1.5 %를 추가하고 싶습니다. 적어도, 그것은 당신의 코드가 지금하는 것입니다. 귀하의 코드가 그렇게하지 않기 때문에 합계는 2로 나눠지지 않습니다. – Pointy

+0

코드를 입력하면 45가 113447.87524954027이고 46이 115149.59337828337입니다. 그 가치가 아니라면 무엇을 기재해야합니까? – Pointy

+0

어쩌면 당신은 당신의 해석에 따라 당신의 요구 사항을 더 명확하게해야합니다, 당신의 구현은 의미가 있습니다. 적어도, 기술적으로는 정확합니다. – zsong

답변

1

내가이 개 연속 루프로 할 것 : 다음은 수정 된 코드는

var startingIncome = 30000; 
var startingIncomeArr = []; 
var i; 

startingIncomeArr[0] = startingIncome; 
for (i = 1; i <= 45; i++) { 
    startingIncome += (startingIncome/100 * 3); 
    startingIncomeArr[i] = startingIncome; 
} 
for (i = 46; i < 100; i++) { 
    startingIncome += (((startingIncome/100) * 3)/2); 
    startingIncomeArr[i] = startingIncome; 
} 

는 논리가 두 개의 서로 다른 범위를 커버하는 것이 자신을 for 문에서 분명 그런 식으로. 루프를 통해 매번 if 평가를 피하십시오.

+0

@Ted에게 감사하지만 문제를 해결하기 위해 잘못된 총액을 수정했습니다. – Thomas