Сортировка многомерных массивов
Написал такой код код:
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, время: 22:01. |