当前位置: 首页 > news >正文

w笔记--表格组件(Table)的sorter属性

sorter 是 Ant Design 表格组件(Table)中的一个属性,用于自定义列的排序逻辑。 当点击该列的表头时,表格会根据这个函数的返回值来对数据进行排序。

sorter 属性接受一个函数,这个函数通常有两个参数(比如 row1 和 row2),分别代表表格中的两行数据。函数需要返回一个数值:

负值:表示 row1 应该排在 row2 前面

零:表示 row1 和 row2 排序上相等

正值:表示 row1 应该排在 row2 后面

字符串排序实现

{ title: '服务产品项目名称', key: 'projectName' ,sorter: (row1, row2) => {return (row1.projectName || '').localeCompare(row2.projectName || '')
} },

localeCompare 方法:是 JavaScript 字符串的原生方法,用于比较两个字符串在特定语言环境下的排序顺序。例如:

'Apple'.localeCompare('Banana') // 返回负值(通常是 -1),因为 A 在 B 之前
'Banana'.localeCompare('Apple') // 返回正值(通常是 1),因为 B 在 A 之后
'Apple'.localeCompare('Apple')  // 返回 0,因为两个字符串相同

排序逻辑:

如果 row1.projectName 在字母表中排在 row2.projectName 前面,返回负值,row1 会被排在 row2 前面;

如果 row1.projectName 在字母表中排在 row2.projectName 后面,返回正值,row1 会被排在 row2 后面;

如果两个字符串相同,返回 0,排序顺序不变。

日期排序实现:

{ title: '申请时间', key: 'applicationTime' ,sorter: (row1, row2) => {const time1 = new Date(row1.applicationTime).getTime()const time2 = new Date(row2.applicationTime).getTime()return time1 - time2
}},

这个排序函数通过比较两个日期的时间戳来实现日期排序,具体工作方式:

转换为时间戳:new Date(row1.applicationTime).getTime() 将 applicationTime 转换为 JavaScript 的时间戳(自 1970 年 1 月 1 日以来的毫秒数)。例如:

const date = new Date('2023-01-01').getTime() // 返回 1672531200000

时间戳比较:

如果 row1.applicationTime 早于 row2.applicationTime,time1 会小于 time2,time1 - time2 为负值,row1 会被排在 row2 前面;

如果 row1.applicationTime 晚于 row2.applicationTime,time1 会大于 time2,time1 - time2 为正值,row1 会被排在 row2 后面;

如果两个日期相同,time1 - time2 为 0,排序顺序不变。

相关文章:

  • 基于 STM32 的智慧农业温室控制系统设计与实现
  • 如何通过仿真软件优化丝杆升降机设计
  • `sysctl`命令深度剖析:如何优化内核参数以提升服务器网络/IO性能?
  • app获取相册权限是否意味着所有相片都可随时读取?
  • 力扣HOT100之回溯:131. 分割回文串
  • MySQL 只知道表名不知道具体库?如何查询?information_schema入手
  • 深入解析 Flink 中的时间与窗口机制
  • webpack CDN打包优化
  • js 实现多并发任务处理
  • 8Manage PM、Trello与飞书对比评测:哪款项目管理软件更适合企业使用?
  • DAY07:Vue Router深度解析与多页面博客系统实战
  • 数据库 1.0.2
  • Cmake编译yaml-cpp并在QT中测试成功操作步骤
  • 共现矩阵的SVD降维与低维词向量计算详解
  • 【免费】【无需登录/关注】多点矩阵计算器,计算任何坐标系转换
  • Teigha应用——解析CAD文件(DWG格式)Teigha在CAD C#二次开发中的基本应用
  • 2025-05-27 Python深度学习6——神经网络模型
  • C语言_文件操作
  • Qwen2.5-VL视觉-语言模型做图片理解调研
  • Typescript学习教程,从入门到精通,TypeScript 类型声明文件详解(15)
  • 广州市建设集团网站首页/交换友情链接时需要注意的事项
  • 聊城网站建设培训班/本地推广平台有哪些
  • 哈尔滨网站建设v5star/石家庄seo排名公司
  • 深圳福田专业网站改版/怎么推广公司网站
  • 数字博物馆网站建设内容/免费网站注册平台
  • 淄博政府网站建设公司哪家专业/竞价托管代运营多少钱