5/7 Bleep Bleep


#1

Getting "Oops, tryagain. false" for the following code.

var cashRegister = {
total:0,
//Dont forget to add your property
lastTransactionAmount:0,
add: function(itemCost) {
this.lastTransactionAmount = itemCost;
this.total += itemCost;
console.log("Last " + this.lastTransactionAmount);
},
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() {
console.log("Last = " + this.lastTransactionAmount);
this.total = this.total - this.lastTranscationAmount;
console.log(typeof this.total);
console.log("Total " + this.total);
}
};

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);

When I execute the above, console has following output.

Last 0.98
Last 1.23
Last 4.99
Last 1.8
Last = 1.8
number
Total NaN
Last 1.35
Your bill is NaN

I'm specifically interested in typeof giving number and console.log giving NaN output. What's wrong here?


#2

This is a spelling mistake. It should be lastTransactionAmount. I also scratched my head for the same for a while. :smiley:


#3

Thank you so much... my bad... now I know why people more often do copy/paste :stuck_out_tongue: