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

Sortowanie tabeli wg daty (json)

Object Storage Arubacloud
0 głosów
1,233 wizyt
pytanie zadane 30 sierpnia 2017 w JavaScript przez naaatasha Nowicjusz (120 p.)
Cześć :)

Potrzebuję pomocy przy napisaniu funkcji sortującej wg daty (rosnąco/malejąco - na przemian, jak się klika w nagłówek kolumny). Do tej pory mam tyle: https://jsfiddle.net/naaatasha/gkba2h05/

Jak to zrobić?

Jestem początkująca w js :)
komentarz 30 sierpnia 2017 przez rafal.budzis Szeryf (85,260 p.)
Zamiast getDate użyj getTime

getDate - zwraca numer miesiąca.

getTime - zwraca liczbę sekund od 1 stycznia 1970 00:00:00.
komentarz 30 sierpnia 2017 przez naaatasha Nowicjusz (120 p.)

W którym miejscu mam dać getTime()?

jest funkcja

var sortByDateAsc = function(prop) {
        return function(x, y) {
            var dateA = new Date(x[prop]).getTime();
            console.log(dateA)
            var dateB = new Date(y[prop]).getTime();
            return dateA > dateB ? 1 : -1;
        }
    };

potem chcę ją wywołać tutaj

birthdate.addEventListener("click", function() {
                birthdate.classList.toggle("sort");
                sortByDateAsc("birthdate");

            }, false);

i konsola nic nie pokazuje

komentarz 30 sierpnia 2017 przez rafal.budzis Szeryf (85,260 p.)
Funkcja która sortuje powinna zwracać 3 wartości 1, -1 i 0 brakuje zwracania 0 jesli daty są takie same.
komentarz 30 sierpnia 2017 przez naaatasha Nowicjusz (120 p.)

teraz moja funkcja sortująca wygląda tak:

var sortByDateAsc = function(prop) {
        return function(x, y) {
            var dateA = new Date(x[prop]).getTime();
            console.log(dateA)
            var dateB = new Date(y[prop]).getTime();
            if (dateA > dateB) {
                return 1;
            } else if (dateA < dateB) {
                return -1;
            } else return 0;

        }
    };

i dalej nic się nie dzieje, a konsola nic nie pokazuje. Na pewno to jest dobrze napisane? Próbowałam już wielu kombinacji i nie mam już za bardzo pomysłu.

 

komentarz 30 sierpnia 2017 przez ScriptyChris Mędrzec (190,190 p.)

Twoja funkcja sortByDateAsc zwraca funkcję, której musisz przekazać x i y:

var sortByDateAsc = function(prop) {
        return function(x, y) {

Brakuje u Ciebie wywołania tej drugiej funkcji, bo jest tylko pierwsze:

sortByDateAsc("birthdate"); // wynikiem tego kodu jest funkcja, musisz więc ją wywołać z przekazaniem dwóch parametrów

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 1,210 wizyt
pytanie zadane 14 września 2017 w JavaScript przez Caesar Początkujący (310 p.)
0 głosów
1 odpowiedź 315 wizyt
pytanie zadane 1 marca 2021 w JavaScript przez Bartx Bywalec (2,120 p.)
0 głosów
3 odpowiedzi 565 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...