Сортировка многомерных массивов
Написал такой код код:
var db=[ ["Total Commander",true], ["WinRAR",true], ["CCleaner",false], ["AIMP3",false] ] function draw(){ db.sort() // Вот сюда нужно функцию прикрутить. Пример - db.sort(myFunc) var body=document.getElementsByTagName("body")[0] var table=document.createElement("table") for(var x=0;x<db.length;x++){ var tr=document.createElement("tr") var td=document.createElement("td") td.innerText=db[x][0] tr.appendChild(td) var td=document.createElement("td") td.innerText=db[x][1] tr.appendChild(td) table.appendChild(tr) } body.appendChild(table) } draw() Надо написать функцию для сортирования по одному из элементов массива (либо по текстовому значению, либо по true/false или т.п.). Также приветствую уже готовые функции сортировки для sort(). |
Ваши предложения и сроки выполнения?
шутка, обьясни что тебе надо подробнее может я помогу тебе |
Цитата:
Пример: var db=[ ["A","B"], ["B","B"], ["B","A"], ["A","A"] ] db.sort() Результат сортировки: ["A","A"], ["A","B"], ["B","A"], ["B","B"] Нужно указать сортировку по вторым буквам из массива. |
var db=[ ["A","B"], ["B","B"], ["B","A"], ["A","A"] ] db.sort(function(a,b){ if (a[1] < b[1]){ return -1; }else if (a[1] > b[1]) { return 1; }else{ return 0; } }) alert(db.join('\n')) |
var db=[ ["A","B"], ["B","B"], ["B","A"], ["A","A"] ] db.sort(function(a,b){ return a[1] > b[1] }) alert(db.join('\n')) |
Первые значения массива не отсортированы. Но дальше сам доделаю. Спасибо |
Цитата:
Цитата:
|
var db=[ ["A","B"], ["B","B"], ["B","A"], ["A","A"] ] function sortArr(a,b){ if (a[1] < b[1]){ return -1; }else if (a[1] > b[1]) { return 1; }else{ if (a[0] < b[0]) { return -1; } else if (a[0] > b[0]) { return 1; } else { return 0; } } } db.sort(sortArr) alert(db.join('\n')) |
держи братишка, s - номер ведущего столбца, и спасибо что в карму минусанул...
var db = [ [ "3", "2", "A" ], [ "2", "4", "A" ], [ "1", "1", "B" ], [ "4", "3", "B" ] ]; var s = prompt('номер основного столбца') || 0; db.sort(function(a, b) { return a[s] == b[s] ? a > b : a[s] > b[s] }); alert(db.join('\n')); |
Mахmахmахimus, + 1
только дефаут значение желательно указать. |
Часовой пояс GMT +3, время: 03:21. |