根据所选计划查找总金额

时间:2016-05-30 10:30:18

标签: javascript loops for-loop

我有7天的产品计划,产品价格不同,

如果用户选择了mon,tue,wed的计划,其各自的价格为100,200,300
现在我必须向用户提供此产品7次。意思,

用户将获得星期一,星期二,星期三的产品,然后下周再次星期一,星期二,星期三和那个星期后只有星期一

因此我需要计算其总价格

var total = 100 * 3 , 200 * 2 , 300 * 2 ; 

如何实现这一目标? 到目前为止我已经尝试了,

var mon=document.getElementById("mon").value;
var tue=document.getElementById("tue").value;
var wed=document.getElementById("wed").value;
var thu=document.getElementById("thu").value;
var fri=document.getElementById("fri").value;
var sat=document.getElementById("sat").value;
var sun=document.getElementById("sun").value;
var total=0;
for(i=1;i<=7;i++){

if(mon != ''){ 
total=total+ +mon;
}
if(tue != ''){
total=total+ +tue;
}
if(wed != ''){
total=total+ +wed;
}
if(thu != ''){
total=total+ +thu;
}
if(fri != ''){
total=total+ +fri;
}
if(sat != ''){
total=total+ +sat;
}
if(sun != ''){
total=total+ +sun;
}
alert(total );
}

但这不正确。它是星期一7次

1 个答案:

答案 0 :(得分:1)

// Put  values into array
a = [];
var a[0]=document.getElementById("mon").value;
var a[1]=document.getElementById("tue").value;
var a[3]=document.getElementById("wed").value;
...
// Dont forget to test that sum(a) != 0 to avoid endless loop 

var total=0;
i = 7;
p = 0;
// Loop while all 7 days will be found
while(i>0) {
  // Find next not empty
  while(a[p] == '') p = ++p % 7;
  total += parseInt(a[p]);
  i--;
  p = ++p % 7
}
console.log(total );

demo