使用jquery对数组进行升序和降序排序
sort array both ascending and descending using jquery
我正在尝试排序我的数组,升序和降序。我似乎不知道如何正确地做到这一点。我尝试了不同的方法,但都不奏效。这应该发生在我点击两个按钮时,一个带有id"stigande"上升和一个带有id"fallande"下降。有解决方案吗?
Javascript$(document).ready(function(){
var $films = [];
// ändra bakgrundsfärg för textfield
$('#name').keyup(function(){
$('#name').css('background-color', 'white');
});
// ändra bakgrundsfärg för select lista
$('#options').change(function(){
$('#options').css('background-color', 'white');
});
// kör funktionen när knappen med id button klickas
$("#button").click(function(){
var $titelBetyg = [];
var $titel = $('#name').val();
var $betyg = $('#options').val();
// kontrollera om textfield är tom
if($titel == ""){
$('#name').css('background-color', 'red');
alert("Mata in titel.....");
}
// kontrollera om select lista inte är vald
else if($betyg == "0"){
$('#options').css('background-color', 'red');
alert("Välj betyg....");
}
else{
$titelBetyg.push($titel);
$titelBetyg.push($betyg);
$films.push($titelBetyg);
var $ul = $('#rightbar ul').empty();
if (!$ul.length){ // om ul inte finns
$ul = $("<ul>").appendTo('#rightbar'); // skapa en ny
}
// loopa igenom arrayen och placera innehållet i ul och li
for (var i=0; i<$films.length; i++){
$ul.append("<li>" + $films[i][0] + " " + $films[i][1] + "</li>");
}
$('#form').get(0).reset();
}
});
// kör funktionen när knappen med id stigande klickas
$('#stigande').click(function(a,b){
$films.sort();
});
// kör funktionen när knappen med id fallande klickas
$('#fallande').click(function(){
$films.reverse();
});
});
由于要对数组的数组进行排序,而不仅仅是对一系列名称进行排序,因此在排序时需要做一些稍微不同的事情。
试试这样写:
function arrSort(arr, subkey){
//Default to 0 if no subkey is set
subkey = (subkey===undefined?0:subkey);
var a = arr.slice(0),
b = [], x;
//For each section in the array, create an array containing whatever we are trying to sort by and our unique ID
for (x in a){
b[x]=[a[x][subkey], x];
}
b=b.sort();
//Wipe out all the data that's currently in arr!
arr.splice(0, arr.length);
for (x in b){
arr.push(a[b[x][1]]);
}
return arr;
}
我相信你会想要按$ title排序,所以你会想要实现这样的东西:
// kör funktionen när knappen med id stigande klickas
$('#stigande').click(function(a,b){
arrSort($films, 0);
});
// kör funktionen när knappen med id fallande klickas
$('#fallande').click(function(){
arrSort($films, 0);
$films.reverse();
});
相关文章:
- 如何对javascript表进行排序(升序或降序),该表是某些SQL操作表的结果
- 使用Async.js sortBy的升序与降序排序顺序
- 谷歌图表(javascript) - 接近数字的升序/降序困难
- Javascript - 对包含根据日期升序和降序的对象的嵌套数组进行排序
- 降序表以及 JavaScript 中的升序
- 解析云中的升序和降序多重排序
- 如何排序表升序和降序时,单击链接
- 剑道UI网格-排序降序前升序
- 在升序和降序多维数组之间切换
- 我有一个按降序排列的行图.我想把顺序改为升序.这是我的代码:
- Tinytable如何按降序而不是升序排序表
- 排序函数不能在升序和降序之间切换
- 使用jQuery对HTML列表进行升序和降序排序
- ng-grid上的升序/降序过滤字符串
- 如何使动态JSP表按升序和降序可滚动和排序?
- 使用jquery对数组进行升序和降序排序
- 将z索引按升序/降序动态分配给某个类的未知数量的元素
- 按升序和降序对带有 ID 的 DIV 进行排序
- 使用同位素.js在升序和降序之间切换排序
- 按升序和降序排序字符串日期数组