JSFiddle - React, Tailwind, and code Playground
by Dru Dro
JavaScript
let booked = ['igor', 'gleb', 'nastya', 'misha', 'masha'];
const children = ['igor', 'gleb', 'nastya', 'rita'];
const selected = ['igor','rita'];
// expected result: ['igor', 'misha', 'masha', 'rita']
const diff = children.reduce((acc, i) => {
if (selected.includes(i)) {
acc.include.push(i)
if (!booked.includes(i)) {
booked.push(i)
}
} else {
booked = booked.filter(c => c !== i);
acc.exclude.push(i)
}
return acc
}, {
booked: booked,
include: [],
exclude: []
});
console.log(diff);
console.log(booked)