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