Професионална програма
Loading...
+ Нов въпрос
georgi.stratiev avatar georgi.stratiev 27 Точки

[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 11 Точки
Best Answer

Здравей,

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

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

 

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

Здравей,

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

// 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 27 Точки

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

 

 

0
krasizorbov avatar krasizorbov 376 Точки

В 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 27 Точки

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

0
22/06/2020 17:31:28