tak na marginesie, to czemu używasz map
a nie forEach
? (już pomijając całą resztę. Zastanawia mnie po prostu wybór metody map
do tego celu, skoro tablica ma metodę forEach
przeznaczoną do iteracji po elementach tablicy, a map
służy do mapowania i tworzenia nowej tablicy ze starej)
No chyba ze sie myle i filtrowanie byloby szybsze?
Nie rozumiem też, czemu tego nie sprawdzisz. Nie zrobisz sobie jakiegoś benchmarka.
Czy beda problemy jak z forem liczacym od i = 0?
Tak samo tutaj. Nie wiem, czemu nie napiszesz małego kawałka kodu i nie sprawdzisz, jak to działa w praktyce. Ja tak zawsze robię, jak czegoś nie jestem pewien z JSa.
a ze musze zrobic 3 kroki to bym tak filtrowal niepotrzebnie 3 razy co by pewnie zajelo sporo wiecej czasu niz RAZ obsluzyc i wyodrebnic obiekty ktore sa:
Z moich doświadczeń, to jeśli mam coś zrobić na tablicach, co jest dość skomplikowane i nie można tego ująć w map/reduce/filter, to zwykle najszybszym podejściem, będzie pętla for albo do/while czy while (No ale doszedłem do tego mierząc czasy wykonywania, więc sprawdzenie empiryczne). I często najbardziej czytelne to będzie.
Tylko, że to wszystko zależy co chcesz zrobić, no i "premature optimization is the root of all evil".
let isInNewOrders = false;
Tutaj ponownie podsyłam linka do MDN
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
masz tam choćby metody find
czy findIndex
.
Nie zrobilem tak poniewaz mysle ze to co napisalem jest duzo szybsze.
To nie myśl, tylko sprawdź. Myślenie o tym, że "coś jest szybsze" to zwykle najszybszy sposób na to, żeby zrobić coś, co nie tylko nie będzie szybsze, a wręcz przeciwnie, plus będzie słabym rozwiązaniem pod kątem kodu.
A prawda jest taka, że JavaScript w 2019 się wykonuje zwykle bardzo szybko.
Gorzej z uzyciem pamięci przez strony (należałoby to sprawdzić w Dev Toolsach, ale przypuszczam, że używanie map
może mieć negatywny wpływ na pamięć. Chociaż i tak na tak małą skalę to pewnie nie ma znaczenia i tak. Chyba, żebyś tam miał nie wiadomo ile danych w tej tablicy.