Build a Smart Pantry Restocker - Build a Smart Pantry Restocker

Tell us what’s happening:

Im not able to pass quest 10.
It says if the item doesn’t exist , action should be “donate”.
When i log it it is donate.
What am i missing?

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
    };
    if (obj.zone === undefined) {
      obj.zone = "general";
    }
    if (!resultBefore.includes(sku)) {
      resultBefore.push(sku);
      result.push(obj);
    }
  }
  return result;
}

console.log(parseShipment(rawDat));

function planRestock(pantry, shipment) {
let result = [];

for (let j = 0; j < shipment.length; j++) {
  let action = {};
  for (let i = 0; i < pantry.length; i++) {
    if (shipment[j]['qty'] <= 0) {
      action.type = "discard";
      action.item = {
        sku: shipment[j].sku,
        zone: shipment[j].zone
      } 
    } else if (pantry[i].sku === shipment[j].sku) {
      action.type = "restock";
      action.item = {
        sku: shipment[j].sku,
        zone: shipment[j].zone
      }
    } else {
      action.type = "donate";
      action.item = {
        sku: shipment[j].sku,
        zone: shipment[j].zone
      }
    }
  }
  result.push(action);
}
    return result;
}

console.log(planRestock([{ sku: "A10", name: "Pineapples", qty: 2, expires: "2027-01-01", zone: "general" }], [{ sku: "D43", name: "Pineapples", qty: 1, expires: "2027-01-01", zone: "general" }, { sku: "E54", name: "Peppers", qty: -1, expires: "2027-01-01", zone: "fridge" }, { sku: "A11", name: "Pineapples", qty: 2, expires: "2027-01-01", zone: "general" }]));

function groupByZone(actions) {
  let result = {};
  for (let i = 0; i < actions.length; i++) {
    let zonecheck = actions[i].item.zone;
    if (!result.hasOwnProperty(zonecheck)) {
      result[zonecheck] = []
    }
    if (result.hasOwnProperty(zonecheck)) {
      result[zonecheck].push(actions[i]);
    }
  }
  return result;
}

console.log(groupByZone([ { type: 'discard', item: { sku: 'D43', zone: undefined } },
  { type: 'discard', item: { sku: 'E54', zone: 'fridge' } } ]))


function clonePantry(pantry) {
  let strfy = JSON.stringify(pantry);
  const copy = JSON.parse(strfy);

  return copy;
}


Your browser information:

User Agent is: Mozilla/5.0 (X11; Linux x86_64) 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

GitHub Link: freeCodeCamp/curriculum/challenges/english/blocks/lab-smart-pantry-restocker/69a5f35669099ed52f8563b1.md at main · freeCodeCamp/freeCodeCamp · GitHub

console.log(planRestock([], [{
            "sku": "C32",
            "name": "Eggs",
            "qty": 3,
            "expires": "2027-01-01",
            "zone": "fridge"
        }]))

check, your function is failing this