检查对象是否包含数组中的所有键 [英] Check if object contains all keys in array

查看:88
本文介绍了检查对象是否包含数组中的所有键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何最简洁地检查对象是否包含数组中指定的所有键?

How can I most succinctly check if an object contains ALL of the keys specified in an array?

例如:

var arr = ["foo", "bar"];

var obj = {
  foo: 1,
  bar: "hello"
};

magic_function(arr, obj); // return true, all keys from array exist


var obj2 = {
  foo: 12,
  bar: "hi",
  test: "hey"
};

magic_function(arr, obj2); // return true, all keys from array exist,
                           // keys not specified in array don't matter


var obj3 = {
  foo: 5
};

magic_function(arr, obj3); // return false, "bar" is missing


推荐答案

这应该这样做:

var arr = ["foo", "bar"];

var obj = {
  foo: 1,
  bar: "hello"
};

var hasAllKeys = arr.every(function(item){
  return obj.hasOwnProperty(item);
});

console.log(hasAllKeys);

Array.prototype.every() 返回 true 如果传递的函数返回数组中每个项的 true

Object.prototype.hasOwnProperty() 是非常不言自明。

Array.prototype.every() returns true if the passed function returns true for every item in the array.
Object.prototype.hasOwnProperty() is pretty self-explanatory.

这篇关于检查对象是否包含数组中的所有键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆