Hi All!
Currently stuck at: 14. If the input manifest object is not valid, your validateManifest function should return an object describing missing and/or invalid properties.
Any hint would be great!
function normalizeUnits(manifest){
const newManifest = { ...manifest};
if(manifest.unit == "lb"){
newManifest.weight = newManifest.weight * 0.45;
newManifest.unit = "kg";
return newManifest;
} else{
return newManifest;
}
}
function validateManifest(manifest){
let newManifest = {};
let broken = false;
if(!Object.hasOwn(manifest, "containerId")){
newManifest.containerId = "Missing";
broken = true;
} else if(manifest.containerId < 1 || Number.isInteger(manifest.containerId) == false || typeof manifest.containerId !== "number"){
newManifest.containerId = "Invalid";
broken = true;
}
if(!Object.hasOwn(manifest, "destination")){
newManifest.destination = "Missing";
broken = true;
} else if(typeof manifest.destination !== "string" || manifest.destination.trim() === ""){
newManifest.destination = "Invalid";
broken = true;
}
if(!Object.hasOwn(manifest, "weight")){
newManifest.weight = "Missing";
broken = true;
} else if(manifest.weight < 0 || typeof manifest.weight !== "number" || Number.isNaN(manifest.weight) == true ){
newManifest.weight = "Invalid";
broken = true;
}
if(!Object.hasOwn(manifest, "unit")){
newManifest.unit = "Missing";
broken = true;
} else if(manifest.unit != "lb" && manifest.unit != "kg"){
newManifest.unit = "Invalid";
broken = true;
}
if(!Object.hasOwn(manifest, "hazmat")){
newManifest.hazmat = "Missing";
broken = true;
} else if(typeof manifest.hazmat !== "boolean"){
newManifest.hazmat = "Invalid";
broken = true;
}
if (broken == true){
return newManifest;
} else{
newManifest = Object();
return newManifest;
}
}
Thank!
