Laracast13's avatar

Javascript loop dont increment last item value

Hi

<p id="demo1"></p>
<p id="demo2"></p>
<script>
var month = 12;
var amount = 100;
var step = 5;
var text1 = "";
var text2 = "";
var i;
var length = amount+month*step;
for (i = amount; i <= length; i += step) {
var sum = 0;
  text1 += i + "<br>";
  text2 += Math.round((i*0.11/365)*31) +"<br>";
}
document.getElementById("demo1").innerHTML = text1;
document.getElementById("demo2").innerHTML = text2;
</script>

In result have 13 line, Need , do not increment last item 155, 160

100
105
110
115
120
125
130
135
140
145
150
155
160 // I want that this last also be 155

0.9342465753424658
0.9809589041095892
1.0276712328767124
1.0743835616438355
1.121095890410959
1.167808219178082
1.2145205479452055
1.2612328767123286
1.307945205479452
1.3546575342465752
1.4013698630136986
1.448082191780822
1.4947945205479454
0 likes
4 replies
trin's avatar

very stranger code ) if u need for by months, use for by months, dont make life difficult for yourself

<p id="demo1"></p>
<p id="demo2"></p>
<script>
let text1 = ''
let text2 = ''
const month = 12
const amount = 100
const step = 5

for (let i = 0; i < month; i++) {
  const number1 = amount + (step * i)
  const number2 = ((number1*0.11/365)*31)
  
  text1 += number1 + '<br />'
  text2 += number2 + '<br />'
}
  
document.getElementById("demo1").innerHTML = text1
document.getElementById("demo2").innerHTML = text2
</script>
100
105
110
115
120
125
130
135
140
145
150
155

0.9342465753424658
0.9809589041095892
1.0276712328767124
1.0743835616438355
1.121095890410959
1.167808219178082
1.2145205479452055
1.2612328767123286
1.307945205479452
1.3546575342465752
1.4013698630136986
1.448082191780822
Laracast13's avatar

Hi,

I need for by month but in last loop I dont want increment

Need result like (for 13 month ) 12 an 13 will be same 155

100 105 110 115 120 125 130 135 140 145 150 155 155

trin's avatar
<p id="demo1"></p>
<p id="demo2"></p>
<script>
let text1 = ''
let text2 = ''
const month = 12
const amount = 100
const step = 5

let number1
let number2

for (let i = 0; i < month; i++) {
  number1 = amount + (step * i)
  number2 = ((number1*0.11/365)*31)
  
  text1 += number1 + '<br />'
  text2 += number2 + '<br />'
}

text1 += number1 + '<br />'
text2 += number2 + '<br />'
  
document.getElementById("demo1").innerHTML = text1
document.getElementById("demo2").innerHTML = text2
</script>

🤷‍♂️

Laracast13's avatar

Hi

Make update

<p id="demo1"></p>
<p id="demo2"></p>
<script>
var month = 12;
var amount = 100;
var step = 50;
var text1 = "";
var text2 = "";
var i;
var number1;
var number2;
var total = 0;
for (i = 0; i <= month; i++) {

  number1 = amount + (step * i);
  text1 += number1 + "<br>";
  number2 = (number1-step)*2;
  text2 += number2 + "<br>";
   
  total =  number2+total;

}
 
alert(total);
document.getElementById("demo1").innerHTML = text1;
document.getElementById("demo2").innerHTML = text2;
</script>
result :

100
150
200
250
300
350
400
450
500
550
600
650
700

100
200
300
400
500
600
700
800
900
1000
1100
1200
1300

total sums

100+200+300+400+500+600+700+800+900+1000+1100+1200+1300 and gives 9010 But I need exclude loop first number (on this ex, 100) when it calculate total and get 9000

Please or to participate in this conversation.