Jeśli piszę foreacha w javascripcie to jak nazwać zmienną, która iteruje np po obiektach Samochody?
for (samochod in samochody) {
Nazwać ją samochód czy inaczej aby to był dobre wzorce programowania?
Jeśli piszę foreacha w javascripcie to jak nazwać zmienną, która iteruje np po obiektach Samochody?
for (samochod in samochody) {
Nazwać ją samochód czy inaczej aby to był dobre wzorce programowania?
Jak chcesz ładnie napisać to powinno być tak:
for (car in cars) { ... }
Krwawy Wąż napisał(a):
Jeśli piszę foreacha w javascripcie to jak nazwać zmienną, która iteruje np po obiektach Samochody?
Iterator. :P
Pisz kod w całości po angielsku – mieszanka co najmniej dwóch języków to zawsze zły pomysł.
To najlepiej napisać tak:
for (car in cars) { ... }
Czy tą zmienną car powinno się inaczej nazwać?
Jest dobrze. Od razu wiadomo, co przechowuje zmienna.
Zależy jak wygląda ten obiekt, a w ogóle to Object.keys(obj).map
/ Object.keys(obj).forEach
;)
Bo póżniej jeśli odwołujemy się do danego cara to tak to dobrze wygląda?:
for (car in cars) {
let speedCar = cars[car].Speed;
}
Nie znam JS ale skoro masz już pojedynczy obiekt car
to nie możesz zrobić tak?
for (car in cars) {
let carSpeed = car.Speed; // carSpeed brzmi lepiej, choć może wystarczy samo speed.
}
atmal napisał(a):
Nie znam JS ale skoro masz już pojedynczy obiekt
car
to nie możesz zrobić tak?for (car in cars) { let carSpeed = car.Speed; // carSpeed brzmi lepiej, choć może wystarczy samo speed. }
Masz rację. Nie znasz JS (ale to żaden wstyd, o ile tylko w nim nie piszesz).
for .. in ..
w JS iteruje po indeksach.
Dlatego powinno być:
for (const index in cars) {
let car = cars[index];
....
}
Jeśli kogoś denerwuje, że zmienna się nazywa index, a nie carIndex... i może się pomylić z innym indexem:
a) jak będziecie mieli taki wyjątkowy przypadek, że w jednej funkcii są dwa indeksy, to je sobie wtedy nazwiecie,
b) jesli to nie jest wyjątek i często macie kilka indeksów w funkcji to jesteście chorzy.
Przy okazji for .. in ..
jest w JS bardzo zaskakujące - nie tylko dla javowca/C++/C#. To, że iteruje po indeksach to tylko jeden z ficzerów.