后端返回一个包含对象的数组,对象中有个属性名为NAME_IN_CSV的键值对,NAME_IN_CSV的属性值为数字加英文字母,我该如何去把所以对象中的NAME_IN_CSV属性值的按数字到字母从小到大的在el-table中有序排列
时间: 2024-01-21 07:16:13 浏览: 79
可以使用 JavaScript 的 `sort()` 方法对数组进行排序。首先需要将属性值提取出来作为排序依据,然后根据属性值的数字部分和字母部分分别进行比较。
以下是一个示例代码:
```javascript
// 假设后端返回的数组为 data
data.sort((a, b) => {
// 提取 NAME_IN_CSV 属性的值
const nameA = a.NAME_IN_CSV;
const nameB = b.NAME_IN_CSV;
// 将数字部分和字母部分分别提取出来
const numA = parseInt(nameA.match(/\d+/)[0]);
const numB = parseInt(nameB.match(/\d+/)[0]);
const letterA = nameA.replace(/\d+/g, '');
const letterB = nameB.replace(/\d+/g, '');
// 先比较数字部分,如果相同则比较字母部分
if (numA === numB) {
if (letterA < letterB) {
return -1;
} else if (letterA > letterB) {
return 1;
} else {
return 0;
}
} else {
return numA - numB;
}
});
```
然后将排好序的数组传递给 `el-table` 的 `data` 属性即可,如:
```html
<el-table :data="data">
<!-- 表格列定义 -->
</el-table>
```
阅读全文