前言:近期,前端在开发的过程中,需要根据列表中字符串形式的数字进行升序或者降序排序,直接排序肯定是有问题的,这时就需要用到自定义排序的方式了,还有就是先将字符串的数字转化为Number类型的。
具体代码如下:
// 开启排序
<el-table-column
sortable
:sort-orders="['ascending','descending']"
</el-table-column>
// 在表头加上排序的方法
<el-table
@sort-change="onSortChange"
</el-table>
//具体的排序方法
onSortChange ({ prop, order }) {
this.tableData.forEach((val) => {
val[prop] = Number(val[prop])
})
this.tableData.sort(this.compare(prop, order))
},
compare (prop, order) {
return function (obj1, obj2) {
var value1 = obj1[prop]
var value2 = obj2[prop]
if (order === 'ascending') {
return value2 - value1
} else {
return value1 - value2
}
}
},