SortTable组件的实现

需求分析

      SortTable最基本的需求就是对表格的数据列进行排序,但只实现这么简单的排序,通用性太差,不能灵活满足高级需求。经过挖掘,比较高级的功能一般有:

      1. 除了常规的number string date类型外,可以自定义某列的排序方式

      2. date可以采用各种形式,不一定只能采用默认形式

      3. 可以对些HTML类型的字段进行排序

      4. 可以固定某些列不排序,比如序号列

      5. 对上一次排序的列可以反转排序

      6. 如果表格行数很大,表头可以滚动,这样用户清楚每列是什么数据

      7. 自定义样式表头 数据行的一些样式

      8. 支持复杂的表头中的某些字段排序,比如thead有两个tr,某些td进行了合并

 

      有些需求凭空是想不到,需要有比较多的应用场景才能挖掘出来。

实现

      表格排序的基本原理就是把TR对象push到一个数组中,使用数组的sort方法排序,排序后append到tbody中。append会自动调整tr顺序,且不会重复。

      其实把需求和基本原理弄明白了实现也就不难了。有些需求硬实现起来确实很费劲,但使用自定义属性就很容易实现且定制也会很灵活,还有从html拿到都是字符串,需要转换成排序的类型,但数据中可能是-  -- 、日期格式也是五花八门,实现包容所有数据的类型转换几乎不可能,对于这些我们无法确定的就可以扔出去让使用者自己出来, SortTable本身只处理常规的情况。

      数据量非常大时排序可能就会很慢,应该尽量减少sort比较函数的计算,把比较大小以外的活(计算比较字段)放在sort外面进行。

源代码

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值