Част III от „ Странни въпроси от първия ми месец на програмиране“

Има няколко начина за итериране на масиви в JavaScript. Всички те имат едно общо нещо: те изпълняват дадена функция във всеки елемент от вашия масив; разликата е какво получавате в замяна.

Тук предполагам, че знаете какда използвате всеки итератор. Все пак е добре, ако се объркате от тях или ако сте сигурни когада ги използвате. Отне ми няколко седмици, за да разбера правилното използване на различни итератори и се надявам, че тази публикация ще ви помогне да изясните това.

.map = трансформация

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

IRL(В реалния живот): Можете да използвате този метод, за да обхождате API данни, за да покажете всеки запис в уебсайта си – вместо да ги кодирате твърдо във всеки div, например.

.filter = изберете

Използвайте филтър, когато искате да изберетеопределени елементи във вашия масив. Когато даден елемент отговаря на условията, дадени във вашата функция (с други думи, той е верен), той се включва в върнатия масив:

IRL: Ако имате база данни от клиенти и трябва да намерите само тези над 18 години, можете да използвате филтър, за да го направите.

.forEach = изпълнение

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

IRL: Можете да използвате forEach за обработка и запазване на данни във вашата база данни.

.reduce = намаляване

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

IRL: Класическият пример е да се получи сумата от числа в определен масив. Например, ако имате каталог с книги във формат JSON, можете да проверите колко от тези книги са били публикувани, когато баба ви е била на вашата възраст.

за цикъл = докато условието е невярно

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

докато цикъл = докато условието е вярно

Ако не знаете предварително колко пъти да изпълните дадена функция, цикълът while може да е добра идея. В реалния живот тази итерация може да се използва за слайдшоу на вашите телефонни снимки, докато не докоснете стоп, например. Или ако вашият игрови персонаж продължава да работи, докато натискате клавиш със стрелка. И в двата случая не знаете предварително кога потребителят ще прекъсне цикъла. Но бъдете внимателни: ако зададете условието while на true, може случайно да създадете безкраен цикъл Oo

Въпреки това…

Моля, обърнете внимание, че може да няма единверен отговор за вашата функция. Ако се вгледате внимателно, ще видите, че цикълът for може да свърши добре работата на метод за карта или намаляване, или че циклите while работят добре, като заместват циклите for. Но колкото повече кодираме, толкова повече виждаме, че някои опции пасват по-добре от други. Можете да изберете определен метод, за да направите кода си по-четлив, или може да изберете друг за повишена производителност. Във всеки случай, ако познавате инструментите си, имате по-голям набор от опции, за да направите кода си по-ефективен и приятелски настроен към машините и към другите хора :)

Поредица „Странни въпроси от първия ми месец на програмиране“
Част I: „Как индексите и стойностите на масивите работят в for цикли“
Част II: „Как да напишем функции, които вървят вътре в филтърен метод»