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

标签 javascript

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

我可以做一个 for 循环并使用 .hasOwnProperty() 但我想要一种更好、更小的方法来做到这一点。我尝试了诸如 .includesvar 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/

相关文章:

javascript - 动态生成的元素触发的事件不起作用

javascript - Wordpress 中的 JS 注入(inject)

javascript - Angular 构建的 Visual Studio Code 'experimentalDecorators' 问题

javascript - 使用 jquery 或 javascript 将逗号分隔的键和值字符串转换为对象

javascript - Leaflet - 获取弹出窗口中标记的纬度和经度

javascript - PHP/MySql用户注册,如何让想要注册的用户不使用相同的用户名?

javascript - 在 Json 中搜索并获得有限的搜索结果

javascript - 抽搐相关 : Twitch Video player

javascript - 无法加载模板 : uib/template/modal/window. html

javascript - jquery .ajax() GET请求发送选项