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)