• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja JS redundancja

0 głosów
390 wizyt
pytanie zadane 8 kwietnia 2018 w JavaScript przez lastavenger Obywatel (1,060 p.)

Witam,

Chce uniknąć powtarzalności moich funkcji gdzie potrzebuję podmienić tylko jedno słowo tak jak w kodzie poniżej. Jako "prop" chcę podesłać "name" albo "email" i potrzebuję go podmienić w miejscach np.: a.email, sortedemail, a nie w każdym miejscu jestem pewny jak tego dokonać. Pozdrawiam

sortEmail = (prop) => {
    const users = Object.assign([], this.state.contacts);

    if(this.state.sortedemail === 0){
      let usersSorted = users.sort(function(a,b){return a.email > b.email; });
      this.setState({
        contacts: usersSorted,
        sortedemail: 1,
        sortedname: 0
    })
  } else {
    let usersSortedRev = users.sort(function(a,b){return a.email < b.email; });
    this.setState({
      contacts: usersSortedRev,
      sortedemail: 0,
      sortedname: 0
    })
  }
  }

 

1 odpowiedź

0 głosów
odpowiedź 8 kwietnia 2018 przez ScriptyChris Mędrzec (190,190 p.)

Możesz np. w ten sposób:

sortEmail = (prop) => {
    const users = Object.assign([], this.state.contacts);
    const isSortedEmail = this.state.sortedemail === 0;
    const usersSorted = users.sort(function(a,b) {
        return isSortedEmail ? a.email > b.email :  a.email < b.email;
    });

   this.setState({
        contacts: isSortedEmail  ? usersSorted : usersSortedRev,
        sortedemail:  Number(isSortedEmail),
        sortedname: 0
    });
}

Czyli tworzysz zmienną, w której zawierasz warunek, od którego uzależniasz sposób sortowania i propertisy przesyłane w obiekcie do metody setState.

Podobne pytania

0 głosów
1 odpowiedź 246 wizyt
pytanie zadane 27 grudnia 2020 w HTML i CSS przez Bakkit Dyskutant (7,600 p.)
+3 głosów
2 odpowiedzi 418 wizyt
0 głosów
2 odpowiedzi 637 wizyt

93,604 zapytań

142,529 odpowiedzi

322,997 komentarzy

63,092 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...