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