?

Log in

No account? Create an account
Sova_2

epoxyde


Кто рисовал? Какой-то бес, который жил всего чуток.


Категория: it

JavaScript –> React
Sova_2
epoxyde

Начинаю открывать для себя #React. Открытия начались с установки окружения, которая представляет из себя 160 МБ и почти 27000 файлов. Зато теперь приколько писать целый компонент, не разрываясь между .html .css и .js

Осталось научить IDE понимать и активно дополнять синтаксис JSX и вообще, активно работать с React. Так-то ничего, мне даже начинает нравиться это все. Следующий шаг – научиться запускать свои веб-серверы и работать с файлами (чтение-запись).

#javascript #reactjs


Практический JavaScript – Анализ текстов
Sova_2
epoxyde

Начал писать тулзу для анализа текстов. Сейчас она умеет разбирать введенный текст, считать количество слов, количество уникальных слов. Может считать вхождение каждого уникального слова относительно всех слов. Ну, и, конечно же, выводить это в DOM.

Бонусом сейчас – установка минимальной длины учитываемого слова.

// TODO:

до Нового года – сделать так, чтобы можно было задавать ключевые слова для поиска (первое и главное). Код для этого уже есть, но сейчас не включен в основную версию (если это можно называть версиями);
до Нового года же – научить тулзу считать схожесть слов с ключевыми словами (для ключевых слов – левое, сейчас пустое, поле), то есть, брать их за основу и искать последовательно похожие слова, а потом откидывать те, у которых схожесть менее, скажем 50%.

Сейчас тулза выводит результат в формате, удобном для сохранения в CSV. В будущем хочу научить ее формировать этот CSV самостоятельно.

До анализа контекстов я, скорее всего, эту штуку никогда не доведу, но для прикладных задач ее будет вполне достаточно. Ну, и прилепить к ней AmChart, конечно же. А, научив сохранять в локальные файлы, можно сделать анализ сходства текстов в первом приближении. Ну, и да, пока это чистый нативный #javascript ES5.


JavaScript – практический код 2
Sova_2
epoxyde

Немного перепилил генератор ссылочной части на идентификаторы авторов научных публикаций (написан на #javascript). Теперь не нужно делить на ORCID и ResearcheID. Достаточно вставить их последовательно ORCID > ResID для каждого автора (эту работу, похоже, автоматизировать нельзя, но, вероятно, можно научить скрипт последовательно забирать номера из файлов, хотя смысл не ясен, сотни номеров пока никто обрабатывать не собирается). Скрипт сам рассортирует номера, проверит их на правильность (в случае, если хотя бы один из номеров не соответствует требуемому формату, пользователь получит предупреждение с указанием номера или номеров, формат которых некорректен).

Результат работы – полностью готовая к использованию в оформлении авторской плашки в издании набор номеров и ссылок. Пока не стоит задача формирования строки для веб-сайта (только для верстки в журналах), но, в общем, формировать рабочие ссылки я уже тоже научился. По требованию изданий ORCID обязателен, поэтому при его отсутствии в паре запись сформирована не будет, так как при отсутствии ORCID идентификаторы вообще не указываются.

В // TODO: добавил, что в следующей, версии нужно сделать проверку на наличие парных идентификаторов.

В общем, не самая сложная, но работа сделана.


JavaScript – написал первый практический код
Sova_2
epoxyde

Сегодня потребовалось быстро формировать из научных ID ссылочные строки на них и делать строку для авторских данных. Минут за 15 накидал простую тулзу, которая список ORCID-ов и ResID превращает в набор ссылок и строчку. Получилось внешне не очень, зато все работает.

Теперь редакторам и корректорам не придется руками делать это все и получать массу ошибок в итоге.


JavaScript – решение задач – Счастливый билет
Sova_2
epoxyde

О счастливых билетах знают все. Кто-то их ест, кто-то считает это шляпой, кто-то решает задачи на #Javascript

Дано: значение типа number вида 123456.
Требуется: определить, является ли билет, номер которого дан, счастливым по способу «левая и правая половины». То есть, счастливым будет тот билет, у которого сумма первых трех цифр номера равна сумме последних трех цифр. Решение в спойлере:

[РЕШЕНИЕ]

  1. function isLucky(n) {

  2. var a = n

  3. .toString()

  4. .split("")

  5. .map(Number);

  6. var arr1 = a.slice(0, a.length / 2);

  7. var arr2 = a.slice(a.length / 2);

  8. var sum1 = arr1.reduce(function(sum, current) {

  9. return sum + current;

  10. }, 0);

  11. var sum2 = arr2.reduce(function(sum, current) {

  12. return sum + current;

  13. }, 0);

  14. //console.log(a);

  15. // console.log(arr1);

  16. // console.log(arr2);

  17. // console.log(sum1);

  18. // console.log(sum2);

  19. if (sum1 == sum2) {

  20. return true;

  21. } else {

  22. return false;

  23. }

  24. }

Заметьте, что в коде много закомментированных console.log(). Это промежуточные проверки, которые показывают, все ли я делаю правильно и что получается на промежуточных этапах. Формально решение всегда требует return, но мое решение до последнего выводит требуемый результат в console.log().

На это свое развлечение, повторюсь, я трачу максимум час в сутки. Какие-то задачи решаются сразу, буквально с ходу и не требуют ничего читать, а какие-то (как текущая) висят уже третий день. Хорошо, что у меня есть ментор, который всегда все растолкует и пояснит, где быдлокодер делает не так и как сделать лучше. Решения пока не самые изящные, но, по крайней мере, я понимаю, что делаю.