JavaScript或Lodash中是否有包含多个值的includes()的一行代码?

JavaScript或Lodash中是否有包含多个值的includes()的一行代码?,javascript,lodash,Javascript,Lodash,在我的程序中,我经常验证对象。该验证通常包括检查对象是否具有所有已定义的键。是否有一个单行程序(短方法,最好是单函数调用)来检查是否使用纯JavaScript或Lodash(我也在使用) 到目前为止,我在下面的代码中这样做。我在寻找一种更简洁的方式 function validator(object) { let requiredKeys = ['key1', 'key2', 'key3']; for (let requiredKey of requiredKeys) { if

在我的程序中,我经常验证对象。该验证通常包括检查对象是否具有所有已定义的键。是否有一个单行程序(短方法,最好是单函数调用)来检查是否使用纯JavaScript或Lodash(我也在使用)

到目前为止,我在下面的代码中这样做。我在寻找一种更简洁的方式

function validator(object) {
  let requiredKeys = ['key1', 'key2', 'key3'];
  for (let requiredKey of requiredKeys) {
    if (!object.hasOwnProperty(requiredKey)) {
      return false;
    }
  }
  return true;
}

validator({ key1: 1, key2: 2, key3: 3 });  // returns true
validator({ key1: 1, key2: 2 });           // returns false
注1:我可以对
对象
对象.keys()
进行操作,因此一行函数可以处理
对象
以及
数组

注2:在
Array
上有
includes()
方法,但它只接受一个参数。我正在寻找一个可以接受多个的版本。

您可以使用和
thisArg检查对象

功能检查(对象){
返回['key1','key2','key3'].every({}.hasOwnProperty,object);
}
log(检查({}));
log(检查({key1:1}));
log(检查({key1:1,key2:2}));
log(检查({key1:1,key3:3}));

log(检查({key1:0,key2:0,key3:0}))你有一些示例对象要测试吗?@NinaScholz我可以给你提供很多示例对象,但我真的看不出它的用途。代码示例显示了它应该如何工作。我正在寻找一个等价的代码,只是比较短。不能将
.each({}.hasOwnProperty,object)
写成
.each(object.hasOwnProperty)
?它返回错误:
object.prototype.hasOwnProperty:“this”为null或未定义。这仍然是个好主意,也是我需要的。谢谢