Javascript 如何检查对象是否具有数组中的键?

Javascript 如何检查对象是否具有数组中的键?,javascript,Javascript,我有一个字符串数组,我想检查对象是否具有该数组中的所有属性 我可以做一个for循环并使用.hasOwnProperty(),但我想要一个更好、更小的方法来做。我尝试了像.includes、obj中的变量v、将数组传递给.hasOwnProperty之类的方法,但似乎没有任何效果 const obj = {Password: '123456', Username: 'MeMyselfAndI'} const checkFields= ['Method', 'Password', 'Username

我有一个字符串数组,我想检查对象是否具有该数组中的所有属性

我可以做一个for循环并使用
.hasOwnProperty()
,但我想要一个更好、更小的方法来做。我尝试了像
.includes
、obj中的
变量v
、将数组传递给
.hasOwnProperty
之类的方法,但似乎没有任何效果

const obj = {Password: '123456', Username: 'MeMyselfAndI'}
const checkFields= ['Method', 'Password', 'Username']
return checkIfObjectHaveKeysOfArray(obj, checkFields) // should return false because object doesn't have property 'Method'
有没有一种不使用for循环的方法?如果是,如何进行?

我可以做一个for循环并使用.hasOwnProperty(),但我不想用更好、更小的方法来做

循环没有那么大。:-)但您可以使用箭头功能:

return checkFields.every(key => obj.hasOwnProperty(key));
实例:

const obj={Password:'123456',Username:'MeMyselfAndI'}
const checkFields=['Method','Password','Username']
const result=checkFields.every(key=>obj.hasOwnProperty(key));
console.log(结果);//错误
我可以做一个for循环并使用.hasOwnProperty(),但我不想用更好、更小的方法来做

循环没有那么大。:-)但您可以使用箭头功能:

return checkFields.every(key => obj.hasOwnProperty(key));
实例:

const obj={Password:'123456',Username:'MeMyselfAndI'}
const checkFields=['Method','Password','Username']
const result=checkFields.every(key=>obj.hasOwnProperty(key));
console.log(结果);//false
您可以使用并检查每一把钥匙

const
对象={密码:'123456',用户名:'MeMyselfAndI'},
checkFields=[“方法”、“密码”、“用户名”],
hasAllKeys=checkFields.every({}.hasOwnProperty.bind(object));
console.log(hasAllKeys)您可以使用并检查每个键

const
对象={密码:'123456',用户名:'MeMyselfAndI'},
checkFields=[“方法”、“密码”、“用户名”],
hasAllKeys=checkFields.every({}.hasOwnProperty.bind(object));

console.log(hasAllKeys)使用
{}.hasOwnProperty.bind(object)
,imo进行不必要的过度复制。使用
{}.hasOwnProperty.bind(object)
,imo进行不必要的过度复制。因此,请使用每个…循环使用每个…循环使用键。。。