Tell us what’s happening:
Test 17 is always failing even after logging the actions grouped by zones.
Your code so far
const rawDat = ["A10|Tomatoes|5|2027-01-01|fridge", "A10|Tomatoes|5|2027-01-01|fridge", "A10|Tomatoes|5|2027-01-01|fridge", "B21|Bananas|10|2027-01-01"];
function parseShipment(rawData) {
let resultBefore = [];
let result = [];
for (let i = 0; i < rawData.length; i++) {
let op = rawData[i].split("|");
let [sku, name, qty, expires, zone] = op;
let obj = {
sku,
name,
qty: parseInt(qty),
expires,
zone: zone || "general"
};
if (!resultBefore.includes(sku)) {
resultBefore.push(sku);
result.push(obj);
}
}
return result;
}
function planRestock(pantry, shipment) {
let result = [];
for (let j = 0; j < shipment.length; j++) {
let action = {};
let found = false;
if (shipment[j].qty <= 0) {
action.type = "discard";
action.item = {
sku: shipment[j].sku,
name: shipment[j].name,
qty: shipment[j].qty,
expires: shipment[j].expires,
zone: shipment[j].zone || "general"
};
result.push(action);
continue;
}
for (let i = 0; i < pantry.length; i++) {
if (pantry[i].sku === shipment[j].sku) {
action.type = "restock";
action.item = {
sku: shipment[j].sku,
name: shipment[j].name,
qty: shipment[j].qty,
expires: shipment[j].expires,
zone: shipment[j].zone || "general"
};
found = true;
break;
}
}
if (!found) {
action.type = "donate";
action.item = {
sku: shipment[j].sku,
name: shipment[j].name,
qty: shipment[j].qty,
expires: shipment[j].expires,
zone: shipment[j].zone || "general"
};
}
result.push(action);
}
return result;
}
function groupByZone(actions) {
let result = {};
for (let i = 0; i < actions.length; i++) {
let zonecheck = actions[i].item.zone || "general";
if (!result[zonecheck]) {
result[zonecheck] = [];
}
result[zonecheck].push(actions[i]);
}
return result;
}
function clonePantry(pantry) {
let strfy = JSON.stringify(pantry);
const copy = JSON.parse(strfy);
return copy;
}
const shipment = parseShipment(rawDat);
const pantry = [{ sku: "A10", name: "Tomatoes", qty: 3, expires: "2027-01-01", zone: "fridge" }];
const clonedPantry = clonePantry(pantry);
const actions = planRestock(clonedPantry, shipment);
const groupedActions = groupByZone(actions);
console.log("Grouped Actions:", JSON.stringify(groupedActions, null, 2));
Your browser information:
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36
Challenge Information:
Build a Smart Pantry Restocker - Build a Smart Pantry Restocker