Možnost definovat proměnnou pomocí "as" v JS rubrika: Programování: JavaScript

1 mawebis
položil/-a 29.5. 11:15

Ahoj všichni,

poslední dobou řeším, že mám nějaké úložiště dat ukázkově třeba

const state = {
  apples: {
    items: [],
    owner: "..."
  },
  pears: {
    items: [],
    owner: "..."
  }
}

z kterých pak potřebuji používat na chvíli jen jednotlivé items a abych furt nemusel psát zdlouhavě

state.apples.items.map(...);
state.pears.items.map(...);

tak bych si rád definici proměnný zkrátil redefinicí nějak takto

const {
  apples: {items},
  pears: {items},
} = state;

což je špatně, protože proměnná items může být jen 1x. Napadlo mě zda neexistuje něco jako

const {
  apples: {items as applesItems},
  pears: {items as pearsItems},
} = state;

ale bohužel to neexistuje a nebo to píši špatně.

Netuší někdo jak to správně zkrátit do jednoduchého zápisu?

Díky moc,
Petr

odkaz Vyřešeno
5 vproke
odpověděl/-a 29.5. 12:42

Pokdu jde o "as" lze přejmenovávat takto

const {items:appleItems} = state.apples;
const {items:pearsItems} = state.pears;

Pak mě napadá ještě trochu krkolomné řešení

const {apples, pears} = Object.entries(state).reduce((obj, [key, value]) => {
  obj[key] = value.items;
  return obj;
}, {});

Komentáře

  • mawebis : Varianta const {items:appleItems} = state.apples; const {items:pearsItems} = state.pears; je docela i pěkná, dá se to tak i použít. Ale přivedl jsi mě myšlenkou na const { apples: {items: applesItems}, pears: {items: pearsItems}, } = state; a to vypadá, že je přesně to co jsem potřeboval. Ta druhá je opravdu dost krkolomná, to zrovna čitelnost kódu moc nezlepší. Děkuji moc, Petr 29.5. 13:25

Pro zobrazení všech 2 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.