Skip to content

Instantly share code, notes, and snippets.

@xanf

xanf/task.md Secret

Created May 28, 2017 08:54
Show Gist options
  • Save xanf/258d71655a2ad4324b457193bd165019 to your computer and use it in GitHub Desktop.
Save xanf/258d71655a2ad4324b457193bd165019 to your computer and use it in GitHub Desktop.
Задание, для оценки своих навыков в JS

Task

В этом задании запрещено использовать любые сторонние библиотеки. Использовать "навороты" ES2015 можно (достаточно чтобы код выполнялся в последнем Хроме)

Реализовать функцию searchWiki(term1, term2). Функция принимает на вход term1 и term2 - имена статей Википедии (английской) между которыми надо искать связь. Если связь найдена - разрешить промис массивом имен статей, обозначающих связь. Если связь не найдена длиной 2 (т.е. вы просмотрели 2 уровня вложенности от основной статьи) - разрешить промис null. Под связью понимается возможность пройти по ссылке из одной статьи в другую (фактически, грубо говоря, только кликая мышкой)

Пример:

searchWiki('Microsoft', 'Nintendo').then(res) {
  console.log (res);
});
// ожидаемый результат: (внимание он может быть другим, статьи правят)
// ['Microsoft', 'XBox', 'GameCube', 'Nintendo']

Получение данных осуществляется с помощью JSONP-запроса к серверам Википедии http://en.wikipedia.org/w/api.php?action=parse&page=title&prop=text&section=0&format=json&callback=func . В этом адресе Title необходимо заменить на имя страницы, введенное в поле ввода, func - имя jsonp коллбэка

Текст находится внутри объекта data в поле parse, в поле parse находится поле text, в поле text находится поле * (да, оно называется звездочка. Нет, это не я придумал. Так отдает википедия. Смерть в яйце, яйцо в зайце, заяц в уттке, утка в шоке)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment