Building a cash register number 5


#1

I don't know if I am calling it wrong or doing the function wrong on Void last transaction,
I don't even know What void Means.
"var cashRegister = {
total:0,
//Dont forget to add your property
add: function(itemCost) {
this.total += itemCost;
this.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.lastTransactionAmount=this.total-this.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.add.lastTransactionAmount);
//Show the total bill
console.log('Your bill is '+cashRegister.total);"


#2

Hey @coder4294967296,

First is first. I don't know if this was in your code, probably not,

but there's a quotation mark behind var cashRegister.

Now, you called the function incorrectly here:

It's structure is supposed to be like this:

cashRegister.voidLastTransaction();
cashRegister.scan('______', quantity);

Got it? It's something like that.

Also, just to make things easier:

Instead of doing it like that, you can just use -=, which means to subtract, the total amount from it and to put that as the value of the variable. :smiley:


#3

Thanks, only problem is that it is not working!


#4

Your code? (Edited one, please)


#5

Instead of putting the result of this.total - this.lastTransactionAmount back into this.lastTransactionAmount, you have to update the result of this.total instead.

//Add the voidLastTransaction Method here
voidLastTransaction: function(){
    this.total -= this.lastTransactionAmount;
}

#6

thanks for your help