Как заполнить события требованиями к навыкам у пользователей с несколькими навыками - PullRequest
0 голосов
/ 19 апреля 2020

Для проекта у меня есть мероприятия с требованиями к навыкам и пользователь с некоторыми навыками. Моя цель - определить оставшийся навык, необходимый для события.

Я написал часть кода, которая будет проверять навык пользователей только с одним навыком события.

Но я не могу найти решение в ситуации. Например, если необходимо выполнить три навыка и три пользователя с двумя навыками каждый:

Потребности: 1 плита, 1 приемная, 1 музыкант. Зарегистрированные пользователи: 1 повар и приемная, 1 приемная и музыкант и, наконец, 1 повар и музыкант.

В этой ситуации мы можем сказать, что больше нет необходимости, но я не нахожу какой-то лог c, чтобы решить эту проблему.

Что у меня есть

let skillsRequirement = {
  cooker: 2,
  musician: 1,
  receptionnist: 1,
  doctor: 1
};

let users = {
  mat: {
    skills: ['cooker', 'pianist']
  },
  val: {
    skills: ['cooker', 'musician']
  },
  ben: {
    skills: ['receptionnist', 'musician']
  },
  lou: {
    skills: ['cooker', 'receptionnist']
  }
};

Что мой код делает

let skillsObject = {
  cooker: {
    users: [
      'mat'
    ]
    availableUsers: [
      'val',
      'lou'
    ]
  },
  musician: {
    users: [],
    availableUsers: [
      'val',
      'ben'
    ]
  },
  receptionnist: {
    users: [],
    availableUsers: [
      'ben',
      'lou'
    ]
  },
  doctor: {
    users: [],
    availableUsers: []
  }
};

Я, наконец, хочу что-то подобное, где virtualUsers представляют потенциальных пользователей

let skillsObject = {
  cooker: {
    users: [
      'mat'
    ]
    availableUsers: [
      'val',
      'lou'
    ],
    virtualUsers: 1
  },
  musician: {
    users: [],
    availableUsers: [
      'val',
      'ben'
    ],
    virtualUsers: 1
  },
  receptionnist: {
    users: [],
    availableUsers: [
      'ben',
      'lou'
    ],
    virtualUsers: 1
  },
  doctor: {
    users: [],
    availableUsers: [],
    virtualUsers: 0
  }
};

Чтобы узнать, заполнен ли навык, Я добавляю users.length + virtualUsers и сравниваю с количественным требованием. Если количество больше или равно количеству, навык заполнен

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...