el-table数字与汉字排序实现及localeCompare字符串方法介绍
AI 概述
localeCompare()介绍实现步骤总结
产品要求对 el-table 表格中数字与汉字进行排序,数字按大小排列,汉字按拼音首字母(A-Z)排序。
数字排序实现简单了,这里不多说,汉字排序就需要引入今天的主角localeCompare()方法。
localeCompare()介绍
localeCompare() 方法用于比较两个字符串,并根据本地排序...
目录
文章目录隐藏
产品要求对 el-table 表格中数字与汉字进行排序,数字按大小排列,汉字按拼音首字母(A-Z)排序。
数字排序实现简单了,这里不多说,汉字排序就需要引入今天的主角localeCompare()方法。
localeCompare()介绍
localeCompare() 方法用于比较两个字符串,并根据本地排序规则确定这两个字符串的顺序。这可以用于排序,例如在表格中按字母顺序排列行。
语法:
string.localeCompare(compareString[, locales[, options]])
参数说明:
- compareString:必需。要与调用字符串进行比较的字符串;
- locales:可选。一个字符串数组,用于指定一种或多种区域设置代码;
- options:可选。一个包含属性的对象,用于控制比较的各方面。
注意事项:
localeCompare()方法是大小写敏感的。例如,”a” 和 “A” 是不同的字符。localeCompare()方法也是重音符号敏感的。例如,”é” 和 “è” 是不同的字符。localeCompare()方法的默认区域设置是当前系统的区域设置。localeCompare()方法返回的数字取决于本地排序规则。不同的语言和不同的区域设置可能会有不同的排序规则。localeCompare()方法不会更改原始字符串。它只是返回一个数字。
常用场景:汉字排序。
实现步骤
1、在 el-table-column 上加上 sortable=”custom”。
<el-table-column prop="date" label="序号" sortable="custom"> </el-table-column>
方法详细介绍:

2、在 el-table 绑定事件 sort-change
<el-table :data="tableData" style="width: 100%" @sort-change="sort_change">
方法详细介绍:

3、代码实现
sort_change ({ column, prop, order }) {
let fieldname = prop;
let sortType = order;
if (fieldname == 'date') {
// 数字排序
this.getNums(fieldname, sortType)
}
if (fieldname == 'name') {
// 汉字首字母排序
this.tableData.sort(this.compare(fieldname, sortType));
}
},
// 数字排序
getNums (fieldname, sortType) {
if (sortType === "ascending") {
this.tableData = this.tableData.sort((a, b) => b[fieldname] - a[fieldname]);
// console.log(this.tableData);
} else if (sortType === "descending") {
this.tableData = this.tableData.sort((a, b) => a[fieldname] - b[fieldname]);
}
},
// 汉字首字母排序
compare (propertyName, sort) {
return function (obj1, obj2) {
var value1 = obj1[propertyName];
var value2 = obj2[propertyName];
if (typeof value1 === "string" && typeof value2 === "string") {
const res = value1.localeCompare(value2, 'zh');
return sort === "ascending" ? res : -res;
} else {
if (value1 <= value2) { return sort === "ascending" ? -1 : 1; } else if (value1 > value2) {
return sort === "ascending" ? 1 : -1;
}
}
}
}
总结
这里面相当于用了一个表格自定义排序方法,这个点是我们该考虑的,这里还可以用sort-method。这个方法是需要在每列都加的,我当时做的是动态添加表头的需求,sort-method 就不好实现。
想用 sort-change 方法来自定义排序方法一定要设置sortable="custom";如果sortable="true",就代表你使用的默认排序。只有order=null时才会触发你自定义的方法。
以上关于el-table数字与汉字排序实现及localeCompare字符串方法介绍的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » el-table数字与汉字排序实现及localeCompare字符串方法介绍
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » el-table数字与汉字排序实现及localeCompare字符串方法介绍
微信
支付宝