5/7 bleep^2 - question about quantity


#1

Hi - I was able to get this correct and start the next lesson, but I'm having trouble understanding how the last transaction amount actually worked as is. More specifically, how does lastTransactionAmount store the total amount of the last transaction including quantity if I only set it to the cost of the single item?

Originally I wrote the code with a "quantity" parameter in the voidLastTransaction amount to multiply with lastTransactionAmount but after testing I found that quantity was already included.. would greatly appreciate your help.

Thanks in advance.

var cashRegister = {
total:0,
lastTransactionAmount:0,
//Dont forget to add your property
add: function(itemCost,quantity) {
this.total += itemCost;
lastTransactionAmount = itemCost;
},
scan: function(item,quantity) {
switch (item) {
case "eggs": this.add(0.98 * quantity); break;
case "milk": this.add(1.23 * quantity); break;
case "magazine": this.add(4.99 * quantity); break;
case "chocolate": this.add(0.45 * quantity); break;
}
return true;
},
//Add the voidLastTransaction Method here
voidLastTransaction: function() {
this.total -= lastTransactionAmount;
}

};

cashRegister.scan('eggs',1);
cashRegister.scan('milk',1);
cashRegister.scan('magazine',1);
cashRegister.scan('chocolate',4);

//Void the last transaction and then add 3 instead
cashRegister.voidLastTransaction();
cashRegister.scan('chocolate',3);

//Show the total bill
console.log('Your bill is '+cashRegister.total);


#2

should be,

this.total -= this.lastTransactionAmount;

#3

Thanks @mtf - I see that and made the adjustments. I actually found another similar thread: http://discuss.codecademy.com/t/5-7-this-lasttransactionamount/12480/2

I guess I'm still confused how lastTransactionAmount includes the quantity of the voided 4 chocolate bars when it was set to the cost of a single item (itemCost). When adding items, it's not until the "scan" function where quantity of items is factored into the equation.

I know this is probably obvious to most.. but I'm still a newbie and having a hard time letting this go until I get it. Thanks!


#4

itemCost includes a quantity multiplier, ...

case 'chocolate': this.add(0.45 * quantity); break;

The value in cashRegister.lastTransactionAmount is 1.8