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