5 I can't understand where the mistake is


#1

Hello everybody,
please I need help. I can't understand where I'm doing wrong. the console gave me the error "Oops, try again. false"

var cashRegister = {
total:0,
quantity:0,
lastTransactionAmount:0,
//Dont forget to add your property
add: function(itemCost) {
this.total += itemCost;
this.lastTransaction= 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-=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.scan("chocolate",3);

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


#2

It seems like your problem lies in your add function. The lastTransactionAmount variable is not being properly referred to - you've called it this.lastTransaction in the function.


#3

One more quick observation (this doesn't really affect the outcome of your code): you don't need the "quantity" property. Any quantities ever input are dealt with in the scan property's function, the result sent to the add function. The "quantity" property is never updated by anything else, so it simply remains zero and is a useless property.


#4

oh thanks. Now it works! thanks a lot