Wyrażenie warunkowe

0

Dzień dobry,
jak zrobić coś takiego że podczas przypisywania danych do tablicy sprawdzany jest warunek przy pozycja.ilosc i jeżeli wynosi 0 to przypisuje do pola odebrane wartość "NIE".

Pozdrawiam,
Łukasz

const wiersz = pobierz_zlecenia.map(
  pozycja => ({
    id: pozycja.id,
    kontrahent_id: pozycja.kontrahent_id,
    kontrahent: pozycja.kontrahent_nazwa,
    telefon: pozycja.telefon,
    ilosc: pozycja.ilosc,     
    odebrane: pozycja.ilosc // if(pozycja.ilosc === 0) { "NIE"}
  }));
4
odebrane: pozycja.ilosc === 0 ? "NIE" : "TAK"
3

Update: @virusek391 Chociaż swoją drogą, nie jestem pewien czy powinieneś umieszczać ciąg "Nie"/"Tak" w polu odebrane. Myślę że rozważniej byłoby umieścić tam po prostu wartość true/false, i potem zamienić ją na odpowiedni "ludzki" wygląd, dopiero w momencie w którym będziesz prezentował te dane użytkownikowi. Wtedy w ogóle nie musisz nic zamieniać, i wystarczy że zrobisz

odebrane: pozycja.ilosc > 0

Poprzednia odpowiedź

virusek391 napisał(a):

jak zrobić coś takiego że podczas przypisywania danych do tablicy sprawdzany jest warunek przy pozycja.ilosc i jeżeli wynosi 0 to przypisuje do pola odebrane wartość ,,NIE".

Faktycznie przykład od @AdamWox wydaje się najbardziej przejrzysty, dla tak prostego przykładu; jednak gdyby miało się okazać że podobny problem wystąpiłby z bardziej skomplikowanymi danymi, to warto dla kompletności dodać dwie pozostałe opcje.

Wersja 1. patrz odpowiedź: @AdamWox (ternary operator)

Wersa 2. funkcja

const wiersz = pobierz_zlecenia.map(pozycja => ({
    id: pozycja.id,
    kontrahent_id: pozycja.kontrahent_id,
    kontrahent: pozycja.kontrahent_nazwa,
    telefon: pozycja.telefon,
    ilosc: pozycja.ilosc,     
    odebrane: odebrane(pozycja)
}));

function odebrane(pozycja) {
  if (pozycja.length === 0) {
    return "Nie";
  }
  return "Tak";
}

Wersja 3. if + zmienna

const wiersz = pobierz_zlecenia.map(pozycja => {
  let odebrane;
  if (pozycja.ilosc === 0) {
    odebrane = "Nie";
  } else {
    odebrane = "Tak";
  }
  return {
    id: pozycja.id,
    kontrahent_id: pozycja.kontrahent_id,
    kontrahent: pozycja.kontrahent_nazwa,
    telefon: pozycja.telefon,
    ilosc: pozycja.ilosc,     
    odebrane
  };
});

1 użytkowników online, w tym zalogowanych: 0, gości: 1