如何检查当前数组中的对象是否存在于上一个数组中

how to check if object from current array exist in previous array

我有一个包含 x 个对象数组的数组,我的 objective 是检查当前数组中的对象是否存在于前一个数组中,如果不存在(前一个数组中不存在对象)我将在其中创建它上一个数组。 主数组如下所示:

    [
    {
    alphabet: [
     {value: 1, name: "X" },
     {value: 4, name: "Y" },
     {value: 1, name: "Z"}
    ]
   },
 {
   alphabet: [
     {value: 1, name: "W" },
     {value: 4, name: "X" },
     {value: 1, name: "Y"}
    ]
}
    ]

检查后的输出是这样的:

   [
{
    alphabet: [
     {value: 1, name: "X" },
     {value: 4, name: "Y" },
     {value: 1, name: "Z" },
     {value: 1, name: "W" }
    ]
},
   { alphabet: [
     {value: 1, name: "W" },
     {value: 4, name: "X" },
     {value: 1, name: "Y"}
    ]
    }
    ]

如果我理解你的问题,你可以使用 spread :

let data =[
    {
    alphabet: [
     {value: 1, name: "X" },
     {value: 4, name: "Y" },
     {value: 1, name: "Z"}
    ]
   },
  {
   alphabet: [
     {value: 1, name: "W" },
     {value: 4, name: "X" },
     {value: 1, name: "Y"}
    ]
  }
];

console.log(
  {
    alphabet : [
      ...data[0].alphabet,
      ...data[1].alphabet.filter(a=>!data[0].alphabet.some(b=>b.name===a.name)),
    ],
  },
  data[1],
);