Bug #024
🪲 Znajdź buga
const numbers = [1, 2, 3]
console.log(
numbers.map(n => { value: n })
)
Mamy tablicę z liczbami przypisanymi do stałej numbers. Chcemy zwrócić tablicę z obiektami, w których każdy z obiektów będzie miał przypisaną wartość do własności value.
Czy powyższy kod spełni to zadanie?
🧪 Rozwiązanie
const numbers = [1, 2, 3]
console.log(
numbers.map(n => ({ value: n }))
)
Błędny przykład zwróci nam tablicę [undefined, undefined, undefined].
Funkcje strzałkowe domyślnie zwracają zawartość funkcji (domniemany return) tylko jeśli nie jest ono w formie blokowej.
Użycie nawiasów klamrowych { i } tworzy ciało funkcji w formie blokowej i tym samym wymaga wyraźnego zwrócenia wartości z takiego ciała poprzez wyrażenie return.
W funkcji strzałkowej chcąc zwrócić obiekt musielibyśmy ciało funkcji zapisać jako { return { value: n } }.
Możemy jednak użyć formy zwięzłej i pominąć return, umieszczając obiekt wewnątrz nawiasów ( i ).
Tym samym funkcja strzałkowa potraktuje taką konstrukcję jako zwięzłe ciało funkcji i zwróci je bez konieczności użycia return.
🎢 Plac zabaw
Otwórz edytor w nowym oknie📑 Linki
❤️ Podobają Ci się bugi JS?
Podziel się linkiem ze znajomymi:
https://codisity.pl/100-bugow-js