Przejdź do głównej zawartości

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