我有一个字符串数组,我想检查该对象是否具有该数组中的所有属性。
我可以做一个 for 循环并使用 .hasOwnProperty()
但我想要一种更好、更小的方法来做到这一点。我尝试了诸如 .includes
、 var v in obj
之类的方法,将数组传递给 .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 循环的情况下做到这一点?如果是,如何?
最佳答案
I could do a for loop and use .hasOwnProperty() but I wan't a better and smaller way to do it
循环没那么大。 :-) 但是您可以将 every
与箭头函数一起使用:
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(result); // false
关于javascript - 如何检查对象是否具有数组中的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54404107/