-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathindex.js
43 lines (35 loc) · 1.46 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
* @typedef Person
* @type {object}
* @property {string} name - имя
* @property {Array<string>} interests - интересы
* @property {string} email - почта
* @property {{ startDate: Date, endDate: Date }} freeRange - диапазон для встречи
*/
/**
* @typedef Group
* @type {object}
* @property {() => Array<Person>} getAll - получить всех участников группы
* @property {(person: Person) => boolean} includePerson - добавить человека к списку участников
* @property {(email: string) => boolean} excludePerson - удалить человека из списка участников
*/
/**
* @param {string} interest - интерес группы
* @returns {Group} созданная группа
*/
function createGroup(interest) {
};
/**
* @param {Group} group - группа людей
* @param {Date} meetingDate - дата встречи
* @returns {number} кол-во людей, готовых в переданную дату посетить встречу
*/
function findMeetingMembers(group, meetingDate) {
};
/**
* @param {Group} group - группа людей
* @returns {Date} дата, в которую могут собраться максимальное кол-во человек из группы
*/
function findMeetingDateWithMaximumMembers(group) {
};
module.exports = { createGroup, findMeetingMembers, findMeetingDateWithMaximumMembers };