sort方法排序會(huì)不會(huì)修改數(shù)組本身 基于jquery的表格排序?
基于jquery的表格排序?$(function(){//存入直接點(diǎn)擊列的每一個(gè)TD的內(nèi)容;varaTdCont[];//再點(diǎn)列的索引值varthanh0//然后再對(duì)TR進(jìn)行排序varsetTrInd
基于jquery的表格排序?
$(function(){
//存入直接點(diǎn)擊列的每一個(gè)TD的內(nèi)容;
varaTdCont[];
//再點(diǎn)列的索引值
varthanh0
//然后再對(duì)TR進(jìn)行排序
varsetTrIndexfunction(tdIndex){
for(i0;iaTdCont.length;i){
vartrContaTdCont[i];
$(tbodytr).each(function(){
varthisText$(this).children(td:eq(tdIndex)).text();
if(thisTexttrCont){
$(tbody).append($(this));
}
});
}
}
//比較比較函數(shù)的參數(shù)函數(shù)
varcompare_downfunction(a,b){
returna-b;
}
varcompare_upfunction(a,b){
returnb-a;
}
//比較函數(shù)
varfSortfunction(compare){
(compare);
}
//木盒TD的值,并存進(jìn)數(shù)組,接過(guò)前二個(gè)TD值;
varfSetTdContfunction(thIndex){
$(tbodytr).each(function(){
vartdCont$(this).children(td:eq(thIndex)).text();
aTdCont.push(tdCont);
});
}
//點(diǎn)擊時(shí)必須執(zhí)行的函數(shù)
varclickFunfunction(thindex){
aTdCont[];
//某些再點(diǎn)當(dāng)前列的索引值
varnThCountthindex;
//動(dòng)態(tài)創(chuàng)建sortTh函數(shù)接過(guò)要比較好的數(shù)據(jù)
fSetTdCont(nThCount);
}
//然后點(diǎn)擊事件沒(méi)綁定函數(shù)
$(th).toggle(function(){
thi$(this).index();
clickFun(thi);
//全局函數(shù)都很函數(shù),降序
fSort(compare_up);
//重新排序行
setTrIndex(thi);
},function(){
clickFun(tinh);
//全局函數(shù)比較函數(shù)升序
fSort(compare_down);
//重新排序行
setTrIndex(thi);
})
})
主要思路:
只不過(guò)JS有SORT的方法,對(duì)數(shù)組接受排序,那就按照個(gè)方法,我們變會(huì)想到數(shù)組了。
1.點(diǎn)標(biāo)表格標(biāo)頭的時(shí)候,取出再點(diǎn)的是那一列。即列的索引值。是因?yàn)橄旅嬉⑶遗判虻哪鞘窃摿?。所以我我要知道是點(diǎn)的那一列。
2.對(duì)表格的數(shù)據(jù)部分,也就是tbody部分,進(jìn)行點(diǎn)擊的列的取值,把這些值現(xiàn)金存入到一個(gè)數(shù)組當(dāng)中。
3.將卡內(nèi)數(shù)據(jù)的數(shù)組,按照SORT方法并且排序。(這里寫了兩種,升,或降,畢竟是直接點(diǎn)擊時(shí)要可以切換排序的。上次降,第一次升,第三降,第四升,由前到后參與)
4.將排序好的數(shù)組的值并且遍歷數(shù)組,在遍歷過(guò)程過(guò)程中,和每一行TR的然后點(diǎn)擊列的那個(gè)TD當(dāng)中的數(shù)據(jù)通過(guò)一個(gè)比較。如果沒(méi)有大小關(guān)系,就再插入到tbody的結(jié)果去.(反應(yīng)最快直接插入的,將是在第一行。)
sort默認(rèn)是以什么排序的?
sort函數(shù)設(shè)置成的排序是升序排序,即你從小到大。
1.對(duì)簡(jiǎn)單數(shù)組排序
簡(jiǎn)單理解那就是partitions(begin,end,cmp)
sort函數(shù)中參數(shù)有三個(gè)(第三個(gè)這個(gè)可以省略)
其中begin是排序數(shù)組的起始地址
end是排序數(shù)組的結(jié)束地址(后來(lái)一位要排序元素的地址)這兩個(gè)參數(shù)是地址。
對(duì)于降序排序這個(gè)可以用sort(a,a10,greater())也這個(gè)可以可以自定義cmp函數(shù)
另外相不對(duì)應(yīng)的升序排序用sort(a,a10,less())
2.對(duì)string型按字典序排序
3.對(duì)結(jié)構(gòu)體排列
相對(duì)于結(jié)構(gòu)體排序不過(guò)也不是很難,僅僅要我們自己格式化處理cmp函數(shù)