gpt4 book ai didi

javascript - 使用jquery对数组进行升序和降序排序

转载 作者:行者123 更新时间:2023-11-30 10:33:58 25 4
gpt4 key购买 nike

我正在尝试对数组进行升序和降序排序。我似乎无法弄清楚如何正确地做到这一点。我尝试了不同的方法,但都没有用。当我单击两个按钮时应该会发生这种情况,一个按钮的 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;
}

我相信你会想要按 $titel 排序,所以你想像这样实现它:

// 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 - 使用jquery对数组进行升序和降序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15116713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com