网页通过循环将数据输出,现要求通过JS来计算差价物料号    单价1   数量1   单价2   数量2   单价3   数量3   单价4   数量4     差价
差价公式是   (单价1-单价4)*数量1  +(单价2-单价4)*数量2 +(单价3-单价4)*数量3
有可能一个物料号单价只变化了三次,所以这个公式就是(单价1-单价3)*数量1  +(单价2-单价3)*数量2 
比如
物料号     单价1   数量1    单价2    数量2    单价3     数量3    单价4    数量4   差价
100050     2.00     3.00     2.5     5.00      3.2       6.00     4.00      10
100051     10       5        12      6JS如何写呢,写个循环来计算差价,可是循环次数又不是固定的  

解决方案 »

  1.   

    设定一个数组 数组的一个元素就是一个对象 例如
    var list = [{danjia:"2.00",shuliang"3.00"},{danjia:"2.5",shuliang"5.00"}]
    然后用for循环。var chajia = 0;
    for(i = 0; i < list.length; i++){
       chajia += list[i].danjia * list[i].shuliang; 
    }return chajia;
      

  2.   

    用二维数组啊
    [[{danjia:"2.00",shuliang"3.00"},{danjia:"2.5",shuliang"5.00"}]
    ,[{danjia:"2.00",shuliang"3.00"},{danjia:"2.5",shuliang"5.00"}]
    ]
      

  3.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <script type="text/javascript"> function getLastIndex(priceArr) {
    for (var index = priceArr.length - 1; index > 0; index++) {
    if (priceArr[index] != null) {
    return index;
    }
    }
    return -1;
    } function calSpread(priceArr, countArr) {
    var lastIndex = getLastIndex(priceArr);

    var result = 0;

    for (var index = 0; index < lastIndex; index++) {
    result += ((priceArr[index] - priceArr[lastIndex]) * countArr[index]);
    } return result.toFixed(2);
    } // 单价数组
    var priceArr = [2, 2.5, 3.2]; // 数量数组
    var countArr = [3, 5, 6 , 10];
    alert(calSpread(priceArr, countArr)); // 数组构建方法
    var arr = new Array();
    arr.push(1);
    arr.push(2);
    alert(arr[0]);
    alert(arr[1]);
    </script>
    <body></body>
    </html>