需求:1.排序由小到大;2.没有排序或者为0的默认到最后面
使用vue或者js都可以完成
效果图:
在这里插入图片描述

第一步:
对数组进行简单的排序

this.tableData.forEach(r=>{
      if(r.rank==null) r.rank=0
 })//将值为null的变为0
this.tableData.sort(function(a, b){
      return a.rank - b.rank;
});//进行排序
this.moveZero(this.tableData)

第二步:
将rank为0的放到数组最后面

moveZero(arr){
          let y = 0;//定义y用于控制循环结束
          for (let i = 0; y < arr.length; y++) {
            if (arr[i].rank == 0) arr.push(arr.splice(i, 1)[0]);//循环到是0的位置就删除该元素0并且在arr末尾push进这个元素0,由于splice删除了该位置元素,所以i不用+1,下次循环仍然检查i位置的元素
            else i++;//循环到不是0的位置就继续往后循环
          }
          console.log(arr);
          return arr;//返回操作后的原数组
},
Logo

前往低代码交流专区

更多推荐