[Homework] JavaScript Basics - JavaScript Loops, Arrays, Strings - Problem{2} - Score Modification
Здравейте колеги,
Поправете ме ако греша, но не е ли сбъркано условието на тази задача?
За Input би трябвало да са дадени floating point numbers (аз виждам целочислени типове), които са валидни ако са между 0 и 400. Като Output се иска валидните резултати, намалени с 20% и сортирани възходящо. От примерния I/O при проверка (делим резултата на 0.8 за да върнем намалените 20%) аз получавам следното:
18.4 / 0.8 = 23
53.6 / 0.8 = 67
96 / 0.8 = 120
136 / 0.8 = 170
160 / 0.8 = 200
169.6 / 0.8 = 212
280 / 0.8 = 350
320.8 / 0.8 = 401
336 / 0.8 = 420
Аз ли греша някъде?
1. Инпута се подава като стринг; в условието е дадено на отделни редове за удобство (визуално), но не е задължително, т.е. може целият код да е на един ред, няма особено значение. Ако се опитваш да копираш директно инпута, JS няма да продължи стринга на новия ред, трябва или да сложиш всичко на един ред, или да ескейпнеш новите редове.
2. Резултата принтираш така, както ти е подаден входа, не променяш форматирането, т.е. само реплейсваш каквото трябва в подадения стринг и го връщаш след промените.
3. Това е интересната част. Моята препоръка е да реплейсваш целия таг. С exec() фунцкията може да хванеш инфото, което искаш да остане, след което правиш нов стринг. Ето накратко какво имам предвид. В група за прихващане запазваш самия линк (href=...) и текста, правиш нов стринг: '[URL ' + линка + ']' + текста + '[/URL]'. Накрая заменяш с replace целия стар таг с новия. Доста по-трудно е по мое мнение поотделно да се заменят триъгълните скоби; сама забелязваш колко е неприятно да опитваш да смениш само тези, които са към а-тагове, а да оставиш останалите както са.