头图

效果

  • 结合数组的索引方法及 sort 方法,按照既定顺序(非升序或降序)排序
  • 如下示例,type 属性按照 3 → 4 → 2 → 1 → 5 的顺序进行排序

代码

// 获取原本的数组
getList() {
  this.tableData = [];
  axios.get("/list2").then((res) => {
    console.log("res", res);
    if (res.status == 200) {
      this.tableData = res.data;
      this.tableSortData = this.sortDataFunc(this.tableData);
      console.log(this.tableData, this.tableSortData);
    }
  });
},
// 排序方法
sortDataFunc(totalArr) {
  let resultArr = [];
  let _this = this;
  // 先过滤一遍,拿到符合的数据
  resultArr = totalArr.filter((item) => {
    return _this.sortArr.includes(item.type);
  });
  // 获取行数据关键属性在排序数组中的索引
  function getIndex(str) {
    return _this.sortArr.indexOf(str);
  }
  // 使用 sort 方法针对索引进行排序
  resultArr.sort((a, b) => {
    return getIndex(a.type) - getIndex(b.type);
  });
  return resultArr;
},

神膘护体小月半
406 声望6 粉丝