检查所有对象键是否作为对象数组中的值存在

时间:2020-08-06 12:29:52

标签: javascript

假设我有这两个实体

const obj1 = {key1: "", key2: "", key3: ""};
const array2 = [
  {
    name: "key1",
  }]

如何检查array2是否有一个对象,其名称为obj1中的每个字段?

基本上我想以数组2结束:

const array2 = [
  {
    name: "key1",
  },
{
    name: "key2",
  },
{
    name: "key3",
  }]

1 个答案:

答案 0 :(得分:1)

像这样吗?

const obj1 = {
    key1: "",
    key2: "",
    key3: ""
};

const array2 = [{
    name: "key1",
}, {
    name: "key2",
}];

const obj1Keys = Object.keys(obj1);
const array2KeyNames = array2.reduce((array2KeyNames, obj) => {
    array2KeyNames.push(obj.name);
    return array2KeyNames;
}, []);

for (let i = 0; i < obj1Keys.length; i++) {
    if (!array2KeyNames.includes(obj1Keys[i])) {
        console.log(obj1Keys[i], ' is not in the array2');
        break;
    }
}