33 lines
709 B
JavaScript
33 lines
709 B
JavaScript
const difference = (arrayOne, arrayTwo, compareKeys) => {
|
|
return arrayOne.filter(({
|
|
[compareKeys[0]]: id1,
|
|
[compareKeys[1]]: id2,
|
|
}) => {
|
|
return !arrayTwo.some(({
|
|
[compareKeys[0]]: id3,
|
|
[compareKeys[1]]: id4,
|
|
}) => id1 === id3 && id2 === id4);
|
|
});
|
|
};
|
|
|
|
const same = (arrayOne, arrayTwo, compareKeys) => {
|
|
return arrayOne.filter(({
|
|
[compareKeys[0]]: id1,
|
|
[compareKeys[1]]: id2,
|
|
...restOne
|
|
}) => {
|
|
return !arrayTwo.some(({
|
|
[compareKeys[0]]: id3,
|
|
[compareKeys[1]]: id4,
|
|
...restTwo
|
|
}) => id1 === id3
|
|
&& id2 === id4
|
|
&& JSON.stringify(restOne) === JSON.stringify(restTwo));
|
|
});
|
|
};
|
|
|
|
module.exports = {
|
|
difference,
|
|
same,
|
|
};
|