如何检查当前数组中的对象是否存在于上一个数组中
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],
);
我有一个包含 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],
);