Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem JS a funkcionalne programovanie

Tento dotaz som polozil aj na inom fore (forum.zive.cz) verejne sa k tomu priznavam nekamenujte ma za to... lebo vsimol som si ze tam chodi malo prispievatelov (1 prispevok za mesiac) tak som tu otazku polozil aj tu:

Dajme tomu ze kodim reactovu komponentu a mam tam localny state. V lokalnom state je ulozeny plain object.

state = {
    nejakyPlainObject: { a: 1, b: 2, c: 3 },
    nejakaInaPremnna: "Nasa krasna hodnota"
}

a teraz v tom plain objekte chcem zmenit polozku b na 4 ako je lepsie ju zmenit? Toto je reactovy funkcionalny pristup na to aby som zmenil 1 hodnotu musim okopirovat vsetky predchadzajuce hodnoty:

const { nejakyPlainObject } = this.state;
this.setState({ nejakyPlainObject: {  ...nejakyPlainObject, b: 4  } });

a potom tu mame klasicky imperativny pristup:

const { nejakyPlainObject } = this.state;
nejakyPlainObject.b = 4;
this.setState({ nejakyPlainObject });

Ten druhy mi smrdi lebo sa nim porusuju zasady funkcionalneho programovania (premenna vo funkcionalnom programovani nemoze menit hodnotu ked chcem prmennu s inou hodnotou mal by som vytvorit novu premennu). Ten prvy mi zase smrdi lebo je neefektivny.

Kladiem si teda otazku co je lepsie pouzivat? Ten druhy sposob je rychlejsi. Ten prvy zase cistejsi. Ale predstavte si ze ten plainObject nema 3 ale 5000 poloziek (trebars je v nom velka excelovska tabulka skonvertovana na JSON). Co by ste uprednostnili vy?

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny