Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

urfu-2015/javascript-tasks-4

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

Contributors

AltStyle によって変換されたページ (->オリジナル) /