Autor Zpráva
Spectator
Profil
Dobrý večer,
už nějakou dobu hledám na internetu nějaké řešení pro třídění vícerozměrného indexovaného pole .

EDIT: zapomněl jsem dpsat, že bych rád třídil vždy podle jednoho sloupce a ostatní hodnoty v řádku by poskočili zároveň se seřazenou hodnotou

for (i = 0; i < visible_rows; i++) {
  column_content = new Array();
  for (j = 0; j < visible_slopes; j++) {
    column_content[j] = $(".row" + i + " td." + j + "_slope").text();
  }
  row_content[i] = column_content;
}        
                
           // Seřadit

  for (i = 0; i < visible_rows; i++) {
  for (j = 0; j < visible_slopes; j++) {
      $(".row" + i + " td." + j + "_slope").text(row_content[i][j]);
  }
}

funkce sort je na to podle mne krátká.

Poradíte prosím, nebo pokud je už návrh tabulky špatný, tak mne prosím opravte
Tori
Profil
Nevím, nakolik je to efektivní, ale šlo by to třeba takhle:
// jako druhý param.je pořadí sloupce, podle kterého se řadí. Nezadaný = první.
function serad(data, i)  {
    var col = i || 0;
    var mySort = function(a, b) {
        if (a[col] > b[col]) { return 1; }
        else if (a[col] < b[col]) { return -1; }
        else { return 0; }
    };
    return data.sort(mySort);
}

  row_content = serad(row_content, 2);
Spectator
Profil
Tori:
Děkuji Vám,
funguje to bezvadně, akorát se v tom budu muset trochu rozkoukat, abych pochopil jak.
Děkuji
Radek9
Profil
Tori:
Jen doplním: metoda sort sice vrací pole, ale vrací to staré. Po provedení této funkce se dá normálně pracovat s row_content a nemusí se do proměnné znovu ukládat.
peta
Profil
Kdybys potreboval radit podle vice sloupcu naraz, muzes pouzit toto:
http://peter-mlich.wz.cz/web/js/pr/index.htm#arraysort
Spectator
Profil
peta:
Děkuji mnohokrát

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0