Skip to content

Задача к лекции «Замыкания в Javascript» – «Мальчишник в Вегасе»

Notifications You must be signed in to change notification settings

urfu-2015/javascript-tasks-4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задача к лекции «Замыкания в Javascript» – «Мальчишник в Вегасе»

🆘 Как создать Pull Request
⚠️ При создании PullRequest'а не забудьте указать ваши имя и фамилию.

Общие требования

Мы очень хотим, чтобы код вы написали сами, а не пользовались внешними библиотеками.

Прежде чем отправлять решение, проверьте его на соответствие общим требованиям.

Когда вы создадите или обновите пулл-реквест, он автоматически будет проверен на соответствие кодстайлу и базовую работоспособность. Результаты вы увидите внизу:

Если всё хорошо:
2015-10-08_1845

Если всё плохо:
2015-10-08_1841

Проверить можно и вручную:

// Устанавливаем проверяльщик
npm install

// Проверяем
npm test

// В результате выведутся ошибки, если они есть
// Если какие-либо ошибки будут непонятны – смело спрашиваем у ментора

Задача

Как-то я (Сергей) посмотрел фильм «Мальчишник в Вегасе» и подумал, что неплохо было бы устроить отвязный мальчишник. Как я узнал позже, для этого, конечно, необходимо жениться :(. Поэтому мне надо устроить и мальчишник, и свадьбу.

У меня есть книга друзей, где описаны друзья и их связи с другими друзьями — faceBook.js. Чтобы было удобно искать друзей, я решил написать итератор iterator.js.

Он умеет обходит друзей, начиная с того, кого указываешь при создании итератора:

//  phoneBook   – книга
//  Cергей      — ищем с себя
//  3           – максимальное количество рукопожатий до человека (при превышении обход завершается)
var friends = iterator.get(phoneBook, 'Cергей', 3);

// Берём следующего друга
// .next() Возращается JSON с именем и телефоном
friends.next(); // { name: 'Васян', phone: '+70000000000' }

// .prev() Возвращаемся к предыдущему
friends.prev();

Принципы обхода:

  • Обход мы начинаем с ближайших друзей, затем берём ближайших друзей ближайших друзей (следующий круг рукопожатий) и так далее.

  • Если друзей у человека несколько, обходим их в алфавитном порядке

  • Если нет следующего друга, .next() должен возвращать null

  • Если нет предыдущего друга, .prev() должен возвращать null

  • Если стартовой точки обхода не существует в книге, .next() и .prev() должны возвращать null

Подробности вас ждут в файле index.js.

Необязательное задание (+80 к логике)

Дополнительное задание описано в файле index.js.
Будет непоправимо круто, если вы его осилите!

About

Задача к лекции «Замыкания в Javascript» – «Мальчишник в Вегасе»

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published