确定 JavaScript 对象是否包含数组中的所有键 & none 的键具有空值

Determine if a JavaScript object contains all keys from array & none of the keys have empty value

给定一个 javascript 对象和一个包含对象必须包含的键的数组

const person_keys = ['id', 'name', 'age'];

let person = {
  name: "person",
  id: "blue",
  age: "",
}

需要编写单个 if 语句的帮助:

对于 person_keys 数组中不在 JavaScript 对象(人)中的所有键

&&

对于值为空字符串的键的所有值

抛出一个错误,指示所有不在 JavaScript 对象(人)中的键和 JavaScript 对象中的所有键值,它们的值都是空字符串。

例如: person_keys 下面的数组包含 4 个值(id、姓名、年龄、体重、身高)

下面的人物对象不包含关键字weight & height,key age 的值为空字符串

输出应该是: “键的重量和高度不存在,键的年龄为空值”

const person_keys = ['id', 'name', 'age', 'weight', 'height'];

let person = {
  name: "person",
  id: "blue",
  age: "",
}

您可以通过检查 notAvailable 和 emptyVals 数组值来改进错误消息。

const person_keys = ['id', 'name', 'age', 'weight', 'height'];

let person = {
  name: "person",
  id: "blue",
  age: "",
}

const notAvailable = [];
const emptyVals = [];
person_keys.forEach(key => {
  if(!person.hasOwnProperty(key)){
    notAvailable.push(key);
  }
  else{
    if(person[key] == null || person[key] == ""){
      emptyVals.push(key);
    }
  }
});
const errorMsg = `The key ${notAvailable.join(' and ')} do not available and the key ${emptyVals.join(' and ')} has empty values`;
console.log(errorMsg)