Tell us what’s happening:
I’ve been working on the Cash Registry problem (Javascript). The solution works fine on jsfiddle.net, but doesn’t pass the tests on freecodecamp.
I am getting the following error:
“Cannot redefine property: count” <-- It seems to come up with the define.properties command.
Thanks!!!
Your code so far
function checkCashRegister(price, cash, cid) {
// Counting registry:
var registry = [];
var penny = 1;
var nickel = 5;
var dime = 10;
var quarter = 25;
var one = 100;
var five = 500;
var ten = 1000;
var twenty = 2000;
var hundred = 10000;
var money = [penny, nickel, dime, quarter, one, five, ten, twenty, hundred]
var nimed = ["PENNY", "NICKEL", "DIME", "QUARTER", "ONE", "FIVE", "TEN", "TWENTY", "HUNDRED"];
for (var i = cid.length - 1; i >= 0; i--) {
registry.unshift(Math.round(cid[i][1] * 100 / (money[i])));
}
// console.log(registry);
// returning change:
var kopikad = [];
var tagasi = (cash - price) * 100;
// console.log(tagasi);
var k = 0;
for (var j = registry.length - 1; j >= 0; j--) {
while (tagasi >= money[j] && registry[j] != 0) {
if (kopikad.includes(cid[j][0])) {
}
/*else {
kopikad.push(cid[j][0])
}*/
kopikad.push(money[j]);
tagasi -= money[j];
registry[j] -= 1;
}
}
/*
console.log(registry);
console.log(tagasi);
console.log(kopikad);
*/
// checking if there is enough change:
let change = [];
Object.defineProperties(Array.prototype, {
count: {
value: function (query) {
var count = 0;
for (let i = 0; i < this.length; i++) {
if (this[i] == query) {
count++;
}
}
return count;
}
}
});
let uus = [];
for (var l = money.length - 1; l >= 0; l--) {
let väärtus = 0;
// console.log(kopikad.count(money[l]));
väärtus = väärtus + kopikad.count(money[l]) * money[l];
uus.push(väärtus);
}
// console.log(uus);
var nimed2 = nimed.reverse();
for (var u = 0; u < uus.length; u++) {
let uus2 = [];
if (uus[u] != 0) {
uus2.push(nimed[u]);
uus2.push(uus[u] / 100);
change.push(uus2);
}
}
// console.log(change);
let lala = {
status: null,
change: null,
};
if (tagasi != 0) {
lala.status = "INSUFFICIENT_FUNDS";
lala.change = [];
console.log(lala);
return lala;
}
for (var q=0;q<registry.length; q++) {
if (registry[q] != 0) {
lala.status = "OPEN";
lala.change = change;
console.log(lala);
return lala;
} else {
lala.status = "CLOSED";
lala.change = cid;
console.log(lala);
return lala;
}
}
//return change;
}
checkCashRegister(3.26, 100, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]]);
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
.
Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/cash-register