callback w metodzie map
(tutaj (el, i)=>i)
)jako pierwszy argument dostaje element tablicy (czyli w tym przypadku będzie to zawsze 0, skoro każdy element to 0), jako drugi argument dostaje indeks, czyli:
map((el,i)=>i);
tutaj i
zawiera indeks, dla pierwszego elementu 0 (liczymy od zera), dla drugiego elementu 1, dla trzeciego elementu 2.
oczywiście callback uruchomi się dla każdego przypisanego do tablicy elementu.
więc tym sposobem
[0, 0, 0, 0, 0] zamieni się w [0, 1, 2, 3, 4]
jako ciekawostkę mogę powiedzieć, że gdybyśmy pominęli w tym przykładzie fill(0)
, to callback w ogóle by się nie uruchomił, bo callback is invoked only for indexes of the array which have assigned values (including undefined).
Nie znaczy to, że fill jest niezbędne, po prostu trzeba jakoś zainicjalizować elementy tablicy, żeby map działało.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
lng
Taka uwaga dot. stylu. Lepiej nie robić takich skrótów, chyba, że są to ogólnie przyjęte skróty. Np. lng
często oznacza longitude
(długość geograficzną, jeśli kod posługuje się jakimiś mapami). Natomiast programiści jak chcą skrócić length
, to prędzej napiszą len
. Wtedy łatwiej to zrozumieć innemu programiście (a ja przynajmniej się nie spotkałem wcześniej ze skrótem length
-> lng
).