javascript - Facing a issue when trying to use a IF statement with arrays -
i creating shopping cart uni project, facing problems when testing array. if more 5 elements selected total price should have 10% discount. variable discount works fine when 1 element selected quantity bigger 5 returns 0 if quantity split between 2 elements (meaning if potatos = 6 discount works if potatos = 4 , blueberry = 2 doesnt work anymore ). here code :
function calc() { var numberpotatos = document.getelementbyid('potatos_id').value; var numberblueberry = document.getelementbyid('blueberry_id').value; var numberstrawberry = document.getelementbyid('strawberry_id').value; var numbereggplants = document.getelementbyid('eggplants_id').value; var numberkiwis = document.getelementbyid('kiwis_id').value; var numberbananas = document.getelementbyid('bananas_id').value; var output = ""; var myarray= new array (6); myarray [0] = numberpotatos; myarray [1] = numberblueberry; myarray [2] = numberstrawberry; myarray [3] = numbereggplants; myarray [4] = numberkiwis; myarray [5] = numberbananas; var mysecondarray = new array (6); mysecondarray [0] = 6; mysecondarray [1] = 7; mysecondarray [2] = 5; mysecondarray [3] = 22; mysecondarray [4] = 12; mysecondarray [5] = 4; // more code var sum = 0; for(var i=0; i< myarray.length; i++) { sum += myarray [i ]* mysecondarray[i]; document.getelementbyid('test').innerhtml = sum; } var discount = 0; for(var i=0; i<myarray.length;i++ ) { if(myarray[i] > 5){ discount = (sum - (sum * 0.10)); discount = parsefloat(discount); } document.getelementbyid('test2').innerhtml = discount; } }
you need keep track of total items, rather if 1 item more 5:
var totalitems = 0; var discount = 0; for(var = 0; < myarray.length; i++) { totalitems += myarray[i]; } if(totalitems > 5){ discount = (sum - (sum * 0.10)); discount = parsefloat(discount); }
Comments
Post a Comment