5. Bleep Bleep


#1

https://www.codecademy.com/courses/close-the-super-makert/0/5?curriculum_id=506324b3a7dffd00020bf661#

The error message reads: Oops, try again. There was a problem with your syntax.

Please help! I feel like it might be a VERY small little mistake, but I can't catch it.


var cashRegister = {
    total:0,
    //Dont forget to add your property
    lastTransactionAmount:0,

    add: function(itemCost) {
        this.total +=  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

var cashRegister = {
total:0,
//Dont forget to add your property
lastTransactionAmount:0,

add: function(itemCost) {
    this.total +=  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;
}; <----------------------------------------------------------------Remove semicolon-----------------------------------------------

};

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

Hoped that helped

Peter


#3

Thanks, that made a difference, but the error message says: "Oops, try again. false."


#4

The hint says "each time add runs, change the value of lastTransactionAmount to equal the itemCost so that lastTransactionAmount always refers to the cost of the last transaction" so I also modified the add function a little:

add: function(itemCost) {
this.total += itemCost;
this.lastTransactionAmount = itemCost;
},

This worked for me. Hope it helps.


#5

Oh! Thank you SO much! This makes the code seem a lot more logical. Thanks!


#6

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.