Home > Blockchain >  How to validate the key and value not to be empty in array?
How to validate the key and value not to be empty in array?

Time:02-16

Parameter validation I want to ensure that the array must not be empty in any cost so that i want to validate the array

imgList= [ { "fileType": "png", "fileContent": "base64" }, { "fileType": "png", "fileContent": "base64" } ] I want to validate both key and value is present or not (it should not be empty)

eg: filetype is missing
   {
    
      "fileContent": "base64"
    },
eg2: value is missing
    {
      "fileType": "",
      "fileContent": "base64"
    },

Code which i have tired is

body.imgList.forEach((item) => {
      var key,
        count = 0;
      for (let [key, value] of Object.entries(item)) {
        if (item.hasOwnProperty(key) && !!value) {
          count  ;
        }
      }
      var objectLenght = count;
      if (objectLenght != 2) {
        return cb({"status_code":400,"status":"Pass all the required fields"});
      }   
    });

When I try this worked is died and image are uploaded with out type in s3

CodePudding user response:

Javascript's truthy / falsy system takes care of this for you. If the key does not exist you will get undefined when attempting to access it, which is falsy. An empty string is also a falsy value.

function validate(data) {
  if (!data || !data.length) return false;
  for (const item of data) {
    if (!item || !item.fileType || !item.fileContent) return false;
  }
  return true;
}

if (validate(body.imgList)) return cb({ status_code: 400, status: 'Pass all the required fields' });;

More info on falsy: https://developer.mozilla.org/en-US/docs/Glossary/Falsy

CodePudding user response:

I hope this works, you can use isOkay function to verify if the array is valid

const isOkay = (arr)=> {
let okay = true;
for(let entry of arr){
  if(!entry.hasOwnProperty('fileType') || !entry['fileType'] || !entry.hasOwnProperty('fileContent') || !entry['fileContent']){
    okay = false; 
    break;
  }
}
return okay;
}
  • Related