sort方法排序会不会修改数组本身 基于jquery的表格排序?
基于jquery的表格排序?
$(function(){
//存入直接点击列的每一个TD的内容;
varaTdCont[];
//再点列的索引值
varthanh0
//然后再对TR进行排序
varsetTrIndexfunction(tdIndex){
for(i0;iaTdCont.length;i){
vartrContaTdCont[i];
$(tbodytr).each(function(){
varthisText$(this).children(td:eq(tdIndex)).text();
if(thisTexttrCont){
$(tbody).append($(this));
}
});
}
}
//比较比较函数的参数函数
varcompare_downfunction(a,b){
returna-b;
}
varcompare_upfunction(a,b){
returnb-a;
}
//比较函数
varfSortfunction(compare){
(compare);
}
//木盒TD的值,并存进数组,接过前二个TD值;
varfSetTdContfunction(thIndex){
$(tbodytr).each(function(){
vartdCont$(this).children(td:eq(thIndex)).text();
aTdCont.push(tdCont);
});
}
//点击时必须执行的函数
varclickFunfunction(thindex){
aTdCont[];
//某些再点当前列的索引值
varnThCountthindex;
//动态创建sortTh函数接过要比较好的数据
fSetTdCont(nThCount);
}
//然后点击事件没绑定函数
$(th).toggle(function(){
thi$(this).index();
clickFun(thi);
//全局函数都很函数,降序
fSort(compare_up);
//重新排序行
setTrIndex(thi);
},function(){
clickFun(tinh);
//全局函数比较函数升序
fSort(compare_down);
//重新排序行
setTrIndex(thi);
})
})
主要思路:
只不过JS有SORT的方法,对数组接受排序,那就按照个方法,我们变会想到数组了。
1.点标表格标头的时候,取出再点的是那一列。即列的索引值。是因为下面要并且排序的那是该列。所以我我要知道是点的那一列。
2.对表格的数据部分,也就是tbody部分,进行点击的列的取值,把这些值现金存入到一个数组当中。
3.将卡内数据的数组,按照SORT方法并且排序。(这里写了两种,升,或降,毕竟是直接点击时要可以切换排序的。上次降,第一次升,第三降,第四升,由前到后参与)
4.将排序好的数组的值并且遍历数组,在遍历过程过程中,和每一行TR的然后点击列的那个TD当中的数据通过一个比较。如果没有大小关系,就再插入到tbody的结果去.(反应最快直接插入的,将是在第一行。)
sort默认是以什么排序的?
sort函数设置成的排序是升序排序,即你从小到大。
1.对简单数组排序
简单理解那就是partitions(begin,end,cmp)
sort函数中参数有三个(第三个这个可以省略)
其中begin是排序数组的起始地址
end是排序数组的结束地址(后来一位要排序元素的地址)这两个参数是地址。
对于降序排序这个可以用sort(a,a10,greater())也这个可以可以自定义cmp函数
另外相不对应的升序排序用sort(a,a10,less())
2.对string型按字典序排序
3.对结构体排列
相对于结构体排序不过也不是很难,仅仅要我们自己格式化处理cmp函数
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。