Loading...
georgi.stratiev avatar georgi.stratiev 29 Точки

[Homework] JS Fundamentals - Arrays advanced - More Exercise - Problem {3} - Air Pollution

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

Опитвам се да реша тази задача с вградения метод forEach, но последните два теста ми гърмят. Ползвайки два обикновени for цикъла, взимам 100/100. Явно не схващам концепцията на вградените методи и затова се опитвам да решавам задачите с тях, но тук не мога да разбера защо последните два теста гърмят, когато ползвам първия подход в кода ми - https://pastebin.com/EgmUmMMn

линк към judge: https://judge.softuni.bg/Contests/Practice/Index/1301#2

Може ли да обясните откъде може да идва тази разлика в двата различни подхода за решението на тази задача?

Тагове:
0
JavaScript Fundamentals
Martin9512 avatar Martin9512 12 Точки
Best Answer

Здравей,

Проблема идва от "let colIndex = line.indexOf(number)".

Когато имаш еднакви елементи на ред, винаги ще взима индекса на първия срещнат.

 

0
01/07/2020 23:03:29
krasizorbov avatar krasizorbov 548 Точки

Здравей,

Ето така работи:

// FIRST METHOD
  mapOfSofia.forEach((line, rowIndex) => {
    line.forEach((number, colIndex) => {
      if (number >= 50) {
        return (result += `[${rowIndex}-${colIndex}], `);
      }
    });
  });

Предполагам защото както е написано в документацията при извикване на функцията

първото число е елемента а второто число е индекса(optional) третото е arr(optional)

Нямам по добро обяснение но тук има колеги с повече стаж с JS така че ще се радвм да видя и други мнения.

1
22/06/2020 12:51:48
georgi.stratiev avatar georgi.stratiev 29 Точки

Благодаря за отговора ти Краси. Всъщност и аз така го разбирам и затова пазя rowIndex-a в първия forEach. След извикването на втория forEach определям индекса на колоната спрямо числото което се итерира, но така и не разбирам защо и как излизат грешките при използването на този вариант за решението на задачата.

 

 

0
krasizorbov avatar krasizorbov 548 Точки

В stack overflow са написали че:

In a forEach loop you don't control the way you iterate over the array.

не знам това до колко е вярно и има ли значение в случая!!!

0
22/06/2020 13:39:21
georgi.stratiev avatar georgi.stratiev 29 Точки

Сигурно това е причината, все пак и аз ще се радвам ако някой по - запознат с JS каже какво точно се случва. Още веднъж благодаря за помощта ! 

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