• 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
54 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 Mędrzec (184,320 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 Mędrzec (184,320 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ź 183 wizyt
pytanie zadane 22 września 2017 w SPOJ przez Józef Niecierski Początkujący (440 p.)
0 głosów
2 odpowiedzi 68 wizyt
pytanie zadane 1 dzień temu w C i C++ przez Eryk Słowiński Nowicjusz (170 p.)
–1 głos
1 odpowiedź 262 wizyt
pytanie zadane 20 marca 2017 w JavaScript, jQuery, AJAX przez Boshi VIP (100,720 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

64,048 zapytań

110,437 odpowiedzi

231,288 komentarzy

47,817 pasjonatów

Przeglądających: 191
Pasjonatów: 5 Gości: 186

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.

...