antd-Table组件列排序

文章介绍了在Table组件中对字符串进行排序的两种方法:使用localeCompare方法,它按照特殊字符-数字-中文-字母的顺序排序;以及使用charCodeAt方法,该方法基于UTF-16编码对字符串的首字母进行数字比较,中文出现在英文之后。这两种方法都可以实现字符串的升序和降序排序。
摘要由CSDN通过智能技术生成

Table组件排序需要在列的数组中加入,sort属性,然后进行升序降序排序操作,官网上的例子显示的是数组或者长度,只要比较大小即可,如果需要字符串首字母之类的需要如下方法:

1)localeCompare

代码中这样实现:

{
          title: '用户名',
          dataIndex: 'name',
          sorter: (a: any, b: any) => a.name.localeCompare(b.name),
          render: (item: any) => item || '---'
        }

这种方式会按照 特殊字符-数字-中文-字母的顺序进行排列(升序,降序反之即可),如图所示:

                       

 2.charCodeAt

 

这里我们记住两点,第一个这是一种编码格式UTF-16,且接收的是字符串,返回的是一个数字,这样我们就可以进行比较了,代码如下:

(a: any, b: any) => a.name.slice(0,1).charCodeAt(0)-b.name.slice(0,1).charCodeAt(0)

 实现效果和localeCompare方法稍有区别:localeCompare是将中文排在了英文之前,而charCodeAt方法是把中文排在了英文之后,(对于升序来说)。

总结:两种方法用哪种都是可以实现字符串排序的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值