Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

Sortowanie

Tworzenie dynamicznych stron internetowych z zastosowaniem JavaScript, jQuery, Ajax. Dowiedz się jak to zrobić, znajdź rozwiązania swoich problemów.

Sortowanie

Post 01.03.2018, 17:32:15

Witam, mam taki kod:

Kod: Zaznacz cały
var arr = [
    {"price":15},
    {"price":10},
    {"price":false},
    {"price":12}
]

arr.sort(function(a, b) {
   return parseFloat(a.price) - parseFloat(b.price);
});


Chce żeby sortowało od najwyższej do najniższej, a jeżeli wartość jest false, wywalać ma na sam koniec arraya

2 problem:

Kod: Zaznacz cały
var arr = [
    {"price":15,"val": 5},
    {"price":10,"val":4},
    {"price":false},
    {"price":12,"val":9},
    {"price":15,"val": 5},
]

arr.sort(function(a, b) {
   return parseFloat(a.price) - parseFloat(b.price);
});


Chce żeby sortowało od najwyższej do najniższej i gdy wartości się powtarzają wtedy sortowało która ma być prędzej na podstawie val, a jeżeli wartość jest false, wywalać ma na sam koniec arraya
venekus
Posty: 53
Dołączył(a): 28.11.2016

Re: Sortowanie

Post 01.03.2018, 17:58:25

a) jeśli price jest zawsze liczbą dodatnią (lub false), to można po prostu w ten sposób

Kod: Zaznacz cały
arr.sort(function(a, b) {
   return b.price - a.price;
});

wtedy false będzie traktowane jako zero i poleci na sam koniec. W przeciwnym wypadku można totalnie łopatologicznie

Kod: Zaznacz cały
arr.sort(function(a, b) {
  if (a.price === false) return 1;
  else if (b.price === false) return -1;
  else return b.price - a.price;
});

chyba, że masz presję na to, żeby było jak najkrócej, ale niekoniecznie czytelnie.

ad. 2
Kod: Zaznacz cały
arr.sort(function(a, b) {
  if (a.price === false) return 1;
  else if (b.price === false) return -1;
  else if (a.price === b.price) return b.val - a.val;
  else return b.price - a.price;
});
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19786
Dołączył(a): 14.04.2002

Re: Sortowanie

Post 01.03.2018, 18:34:52

Działa super, dzięki, jak jeszcze byś pomógł mi z tym: http://forum.webhelp.pl/javascript/indexof-t256081.html
to bym był wdzięczny :)
venekus
Posty: 53
Dołączył(a): 28.11.2016


Powrót do JavaScript


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 51770 zarejestrowanych użytkowników.
Najnowszy użytkownik: mitchellnews


Nasi użytkownicy napisali:

  • 938050 wiadomości
  • w 247613 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)