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

Sortowanie tablicy nie działa przy większych wartościach

0 głosów
62 wizyt
pytanie zadane 2 stycznia w JavaScript, jQuery, AJAX przez Q7V Gaduła (4,300 p.)

Cześć, zrobiłem proste sortowania za pomocą tablicy.

function zrob(){
        a=document.getElementById("test1").value;
        b=document.getElementById("test2").value;
        c=document.getElementById("test3").value;
        if(isNaN(a) || isNaN(b) || isNaN(c)) document.getElementById("wynik").innerHTML="Wartości nieliczbowe!";
        else{
          tab = [a, b, c];
          tab = tab.sort();

          document.getElementById("wynik").innerHTML="Posortowane: "+tab;
        }
      }

Pytanie - dlaczego to nie działa przy większych liczbach.

Dla liczb 421312, 13213, 5321 otrzymuję - 13213,421312,5321

1 odpowiedź

+1 głos
odpowiedź 2 stycznia przez adrian17 Ekspert (204,760 p.)
wybrane 2 stycznia przez Q7V
 
Najlepsza

.sort() niestety domyślnie porównuje wszystko przez konwersję na stringi - stąd takie wyniki.

Musisz mu przekazać, żeby porównywał liczby liczbowo:

tab.sort((a, b) => a - b);

 

komentarz 2 stycznia przez Q7V Gaduła (4,300 p.)
Dziękuję, a co tak właściwie ten zapis oznacza?
komentarz 2 stycznia przez adrian17 Ekspert (204,760 p.)

Funkcja mówiąca, jak porównać liczby. Jeśli a-b jest 0, to a==b. Jeśli a-b > 0, to a > b. Etc.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Description

Co do samego zapisu, to jest równoważne

tab.sort(function(a, b) { return a - b; });

Podobne pytania

0 głosów
1 odpowiedź 200 wizyt
pytanie zadane 22 września 2017 w SPOJ przez Józef Niecierski Początkujący (440 p.)
0 głosów
2 odpowiedzi 83 wizyt
pytanie zadane 18 czerwca w C i C++ przez Eryk Słowiński Początkujący (270 p.)
–1 głos
1 odpowiedź 286 wizyt
pytanie zadane 20 marca 2017 w JavaScript, jQuery, AJAX przez Boshi VIP (100,680 p.)
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

67,186 zapytań

114,135 odpowiedzi

241,913 komentarzy

46,173 pasjonatów

Przeglądających: 278
Pasjonatów: 9 Gości: 269

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...