Loading...
veselinsavov avatar veselinsavov 219 Точки

[Homework] Advanced JS - Simulating OOP in JavaScript

 Здравейте Колеги, 

Видях, че някои колеги се задтрудняват с домашините от този курс. Надявам се домашното ми да е полезно на някой и да не преписвате много :d. Също ще е добре, ако има препоръки и всякакви критики към домашното :)

Problem_01_BugFix

Problem_02_BugFixLevel2

Problem_03_ArrayFlattening

Problem_04_UsefulStringMethods

Problem_05_Vector

 

Тагове:
9
JavaScript Advanced 09/03/2015 16:29:28
a.polyanska avatar a.polyanska 107 Точки

Вярно ли се ориентирам, че част от дадените примерни аутпути на Useful String Methods са грешни? Става дума за изходите при padLeft, padRight и последната комбинация.

0
VenelinGrozev avatar VenelinGrozev 130 Точки

Вярно е, да.

Няма как при команда console.log("*".repeat(5).padLeft(10, "-").padRight(15, "+")); оутпута да е

"-----*****+++++" .

1
Filkolev avatar Filkolev 4482 Точки

Аз не видях грешки в примерите. Идеята е както в C# работи падването - ако кажеш 15 символа, то ще ти падне стринга с колкото символи е необходимо, за да стане общата му дължина 15.

0
velio84 avatar velio84 241 Точки

Аз доколкто разбирам условието, идеята не е да се направи нов стринг с дължина count, а count пъти стринга да се измеси наляво/надясно със знака във втория аргумент (или интервал по default)

В момента и аз тая задача пиша... :)

1
Filkolev avatar Filkolev 4482 Точки

В допълнение на горното ми обяснение:

"*".repeat(5).padLeft(10, "-").padRight(15, "+")

  • "*".repeat(5) --> "*****"
  • .padLeft(10, "-") -- > "-----*****" - тук стрингът се падва отляво с 5 символа "-", понеже текущата му дължина е 5, за да стане общо 10 трябва да се добавят 5 символа отляво
  • .padRight(15, "+") -- > "-----*****+++++" - стрингът преди операцията е 10 символа, за да стане общо 15 трябва да се добавят още 5 отдясно.
0
velio84 avatar velio84 241 Точки

Съгласен съм, че дадените примери работят точно както ти си ги описал. Но, ако се чете условието е съвсем различно:

  • string.padLeft(count, character) – returns a new string which contains count times the specified character at its beginning. character is optional and defaults to spacе

Буквално преведено това означава знака character да се добави отляво count пъти.

т.е. ако имаме:

 

var test = 'kiro';

test.padLeft(4, "*");

 

резултата трябва да е

 

****kiro

 

Според мен условието и примерите са сбъркани :)

2
Filkolev avatar Filkolev 4482 Точки

Да, условието е подвеждащо; и аз в началото го направих другояче, но бързо си спомних как бачка PadLeft/PadRight в C# и не го мислих повече. Т.е. или идеята на автора е била друга и трябва да се коригира тази част от условието, или примерите да се нагласят спрямо условието.

1
a.polyanska avatar a.polyanska 107 Точки

Ами аз не знам как действат в C#, а и през ум не ми мина да сравнявам с други езици, за да разгадая какво ли е имал предвид авторът yell

Аз съм се придържала точно към условието(както го тълкуват по-горе VenelinGrozev и velio84 ). И много вече започвам да се дразня, защото не стига, че и аз трудно разумем материала и ако нямаше код тук щях да се метам през балкона, ами и се губи толкова време с глупости, заради неясноти и недоглеждания. Да не споменавам, че проверяващите домашни (ако още има такива) също тълкуват различно. Споменах го :)

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

0
12/03/2015 01:46:44
VenelinGrozev avatar VenelinGrozev 130 Точки

Filkolev твоето разбиране е като че всичките функции трябва да следват обща логика но всъщност repeat(5), padLeft(10, "-") и padRight(15, "+") са отделни функции като всяка следваща получава за параметър резултатът от предходната. Де факто изразът "*".repeat(5).padLeft(10, "-").padRight(15, "+") е равносилена на

"*".repeat(5); // *****

"*****".padLeft(10, "-") //----------*****

"----------*****".padRight(15, "+") //----------*****+++++++++++++++

 

Ето един пример, където е описано по-подробно.

3
12/03/2015 08:55:26
VenelinGrozev avatar VenelinGrozev 130 Точки

Това мнение се повтори, май понеже кликнах два пъти на Коментирай. Ако може някой модератор да го изтрие.

0
12/03/2015 08:56:13
Filkolev avatar Filkolev 4482 Точки

Падванията са си отделни функции, това което обясних е как работят в езиците, които сме ползвали до момента. Дадените примери са консистентни с поведението на такива функции в C#, PHP, но не и с условието. Т.е. по-вероятно е условието да е сбъркано, не примерите.

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

1
Vacheva avatar Vacheva 154 Точки

И за мен беше достатъчно да видя аутпута, за да променя решението да се съобразява с текущата дължина на this.

И на изпита ако има подобни разминавания - трябва да се следва аутпута.

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.