3/7 Your Bill Is 0. Why?


#1

So, I thought I had this right, but I keep getting an error message saying "Calling cashRegister.add(3.2) set the cashRegister.total to 0 instead of 3.2". Can anyone explain why and what I did incorrectly? Thanks

var cashRegister = {
total:0,
//insert the add method here
add:function(itemCost){
this.item+=itemCost;
},
scan: function (item) {
switch (item) {
case "eggs":
this.add(0.98);
break;

    case "milk": 
        this.add(1.23); 
        break;

    //Add other 2 items here
    case "magazine":
        this.add(4.99);
        break;

        case "chocolate":
            this.add(.45);
            break;

    }
    return true;
}

};

//Scan 2 eggs and 3 magazines
cashRegister.scan("eggs",2);

cashRegister.scan("magazine",3);

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


#2

@jhoove4
Please check your code here

//Scan 2 eggs and 3 magazines
cashRegister.scan("eggs",2);

cashRegister.scan("magazine",3);

The scan method accepts only one parameter. Which is a string. In your case when they asked you to scan two eggs and 3 magazines you added a second parameter and expected it to return true. When you do this the function fails and exits. And the default value of total Which is

0

is returned to the console.
All you have to do is scan the eggs twice and the magazine three times. like this

//Scan 2 eggs and 3 magazines
cashRegister.scan("eggs");
cashRegister.scan("eggs");
cashRegister.scan("magazine");
cashRegister.scan("magazine");
cashRegister.scan("magazine");

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

Also your add method needs to be fixed as well. You wrote

this.item +=this.itemCost;

instead of

this.total +=this.itemCost;

Hope this helps.


#3

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