[JS Frameworks] Домашно Underscore.JS


5

Link: http://pastebin.com/piUVNr5X

На повечето места може да се използва _.chain(), но на мен ми беше по-лесно така да дебъгвам. Качвайте и други варианти, защото задачите предразполагат към различни решения :)

На последната опитах да използвам въпросния _.invert(), но преди това трябва да използвам _.max(), за да достъпя съответното поле. Някой друг, ако е измислил нещо по-хитро да споделя :)

p.S. OOP-то може да се пооправи, но това по-късно 




Отговори



1

Ето и мойте задачи. Някой решения са подобни на тези на колегите, други са по-различни.


от AsenVal (3487 точки)


0

Ето ги и моите решения - source.

Много ми харесва подходът с chaining-а. Така методите ми приличат повече на LINQ и сякаш са по-удобни за разбиране (и по-трудни за дебъгване :D). След поста на Тео с нетърпение чакам да имплементират и arrow functions като хората.

На някои места имам неща, които изобщо не ми харесват - като например алгоритъмът за вземане на средна оценка и викането на .last().first(). Ще се радвам на идеи как бих могъл да ги направя по-добре.


от iordan_93 (867 точки)


0
Незнам какво точно имаш предвид за средната оценка, но може да видиш, мойто решение по-горе, аз си имам един метод за търсене на средна оценка от масив и един метод за sum на елементите на масив и директно си ползвам тях, после разбрах, че sum може да се направи и с _.reduce. _.reduce(marks, function (memo, m) { return memo + m}, 0); Незнам дали този ред ще работи, но е нещо такава, защото незнам дали reduce, може да обхожда масив.

от AsenVal (3487 точки)


0

Малко съм закъснял, но все пак ще кача и моето решение. Постарах се да е колкото се може по-лаконично и в духа на FP (в крайна сметка UnderscoreJS е вдъхновен от Ruby).


от staafl (5770 точки)


5

Моето решение на задачите от първата лекция за Underscore.js.

Използвал съм и requirejs, защото и той ще ни трябва за изпита. Имам три класа, чиито инстанции обработвам според условията. Самите задания се съдържат в IIFE-то underscoreTasks и връщат функции, на които подавам примерните масиви. 

Използвал съм основно chaining, защото е доста удобен, а и лесен за четене. Прилича на ламбда изрази. Важно е да се отбележи, че когато той се използва след последния извикан метод трябва да се извика и value(), защото иначе връща рапнат масив. 


от SStoyanov1 (1324 точки)


0

Едно решение  и от мен. Създал съм си 2 класа за person и за animal, като си добавям към прототипа нещо, ако ми трябва. Задачите са в отделните скриптове, като решенията са стандартни. Използвал съм chaining, където е възможно.




0

source

При намирането на автора с най-много книги се получи доста интересен _.chain(). Подходът при последната задача с имената е същия.

.pair() - конвертира обекта в лист от масиви [key, value] 


от valentin_lozev (1012 точки)


2

Ето го и мойто решение.
Наблъскал съм всички задачи в един файл, незнам така ми дойде. Иначе съм си ползвал RequireJS. Също така съм използвал една малка библиотека ChanceJS, за да си генерирам по лесно Random данни за Students, Animals, Books и People.

Наблъскал съм всичко в конзолата - надявам се да не е много неразбираемо - въпреки, че съм слагал разделители с console.log();

Като цяло underscore ми хареса. Незнам защо, но на лекцията не ме впечатли особено, но след като седнах и го поразцъках взе, че ме изкефи :)

DEMO | CODE


от nzhul (3415 точки)


1
Колеги,
имам малък проблем с тълкуването на условието на 4 задача: Write a function that by a given array of animals, groups them by species and sorts them by number of legs. Тъй като животните от един и същ вид имат еднакъв брой крака, сортирането няма как да се приложи вътре в групата. За мен остава единствената възможност да сортирам групите по брой крака. Моля за мнение, защото виждам, че повечето решения публикувани тук са използвали странни примери с четрикраки птици и трикраки кучета.

от anilak (1134 точки)


0
Разбирам условието по същия начин и така съм решил задачата - първо групата с най-малко крака, последна тази с най-много крака :-)

от kzhokham (102 точки)

0
Е направи осмокрако куче какво толкова те притеснява ? Като не ти харесва така , направи видове дървета - бук , дъб , орех и ги направи с различен брой клони и ги сортирай.

от TeodorTunev (3061 точки)


0

Това е моето решение на задачата.

Използвам съм промисите на jQuery  и AJAX заявки при зареждане на данните. Иначе за Underscore фунциите нямам особени претенции че са супер коректни.

Модел на базата в JS не съм правил, като директно закачам методите към обекта където е необходимо.

За генератор на данни ползвам този сайт: http://www.json-generator.com/

Ще се радвам ако имате препоръки.

Поздрави


от stanev.plamen (1143 точки)


1

Тук са и моите решения. Реших да си поиграя малко и ги направих с Kendo UI и потребителски интерфейс. Пазя данните в localStorage, като и на идея си нямам дали това е най-добрия вариант, но работи и упражних и следващата лекция :Р

Ето тук са приложенията ми за Студентите и Животните :)


от penjurov (1466 точки)