前言
实现表格名称,编码等排序。前端实现。相同的字符串拍到一起
sorter: (a, b) => a.name.charCodeAt(0) - b.name.charCodeAt(0)// 常用
常用的前端实现排序方法会出现。只有第一个字一样的会排在一起。后几个字不一样。但是前两个字一样排不到一起的情况
【排序前】
【排序后】
就会有疑问:归属一。和归属一当时为什么不排在一起。【归属一】明明是相同的
然后发现了字符串比较【localeCompare】。可以实现。相同的排在一起。并且是按abc的顺序
经过测试发现。他们排序的优先级应该是:数字-中文-英文
封装了一个方法。
/**
* @Descripttion: 表格行排序
* @msg: 相同字符串拍到一起
* @param {*} a
* @param {*} b
* @param {*} filed 排序字段
* @return {*}
*/
export function columnsSorter(a, b,filed) {
const value1 = a[filed]||''
const value2 = b[filed]||''
const res = value1.localeCompare(value2, "zh");
return res
}
在配置columns时
{
title: "名称",
dataIndex: "name",
key: "name",
sorter: (a, b) => columnsSorter(a, b,'name')
},
有更好的方法,或者有什么建议。麻烦评论或私信。不吝赐教