Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Milko123 avatar Milko123 14 Точки

DOM-Lab, Problem 04 - Visited Sites, JS

Здравейте,

на задача https://judge.softuni.bg/Contests/Practice/Index/1801#3 с решение https://pastebin.com/DAtUKGUZ, моля някой да ми обясни каква функция имат командите на ред 10-11. Другия ми въпрос е относно регулярния израз на ред 13. Ако правилно разбирам той трябва да отдели всички букви и да ги замести с ' ' , но написан с ^ това не значи ли само в началото на изречението ". Имам предвид, че в случай на текст "visited 6 times", очаквам крайния резултат от replace да е "6 times" (изглежа греша, защото решението е работещо)?

Тагове:
1
JavaScript Fundamentals 13/09/2020 10:08:07
MapoBG avatar MapoBG 36 Точки

Здравейте,

Дали някой може да каже защо следния код за горе споменатата задача, гърми в Judge?

https://pastebin.com/pENfELPi

Дава грешка 

Unexpected error: clickableElements.forEach is not a function

Скрипта го пробвах на 5 различни браузъра(Brave, Opera, Edge, GChrome & IE) и на всички без IE (в11.508) работеше без проблем.....

0
01/10/2020 13:14:23
Axiomatik avatar Axiomatik 2422 Точки

One easy fix at line 4: [...clickableElements].forEach(a => a.addEventListener("click", addCount));

(QuerySelector returns Nodelist which is an array-like collection, but this collection can not employ array methods => reduce, foreach, map...)

Best,

0
MapoBG avatar MapoBG 36 Точки

Thank you for the comment, but it doesn't make much sense since the following quotes are from MDN:

https://developer.mozilla.org/en-US/docs/Web/API/NodeList

It's possible to loop over the items in a NodeList using a for loop:

Recent browsers also support iterator methods (forEach()) as well as entries()values(), and keys().

NodeList.forEach()

Executes a provided function once per NodeList element, passing the element as an argument to the function.

Best Regards, 

0
nickwork avatar nickwork 657 Точки

Judge имаше някакъв проблем с колекциите... направи го така let clickableElements = Array.from(document.querySelectorAll("a")); и тази грешка ще изчезне (Unexpected error: clickableElements.forEach is not a function)

1
MapoBG avatar MapoBG 36 Точки

Благодаря за отговора!

Пробвах без да го каствам към масив, но вместо forEach да ползвам for of и взе, че се получи - явно Judge-a не е обновен с новостите :).

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

Unexpected error: expected 'visited 6 times' to equal 'visited 7 times'

В което не виждам никава логика, понеже при клик в/у, който и да е от линковете, текста се обновява с +1, както е по условие.......

Леко обновения код - https://pastebin.com/uZeeJwkj 

Май ще я зарежа проверката в Judge - важното е, че резултата е постигнат и си работи(в IE и с for of цикъл не бачка....).

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

Поздрави,

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