Для проекта у меня есть мероприятия с требованиями к навыкам и пользователь с некоторыми навыками. Моя цель - определить оставшийся навык, необходимый для события.
Я написал часть кода, которая будет проверять навык пользователей только с одним навыком события.
Но я не могу найти решение в ситуации. Например, если необходимо выполнить три навыка и три пользователя с двумя навыками каждый:
Потребности: 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 и сравниваю с количественным требованием. Если количество больше или равно количеству, навык заполнен
Спасибо за помощь.