iView Table自定义过滤规则动态更改表格中得数据,比如时间、数量

iView Table自定义过滤规则动态更改表格中得数据,比如时间、数量

有个数据展示页面,后端只返回最原始数据,其余的都是我个前端仔进行换算,比如利润、利润率、占比啥的,但这不算什么,连时间、数量、等过滤条件都是前端来处理,刚接到这个需求,心里就在想,这些过滤不都是前端带参数去后端查询么,然后就去问后端,后端说就你前端处理把,因为你处理和我后端处理是一样得,我当时就纳闷了,(我脑海中马上闪现我那快忘光得 脱毛得皮毛 SQL,不就是 where 条件么,这不比我前端快多了)然后后端和我交流了一通,然后我败下阵了
在这里插入图片描述
根据上面筛选条件更新 iView Table数据
思路:

  • 获取表格中得原始数据
  • 根据不同条件去过滤原始数据(在这里脑子一下子没转过弯来,在想这么多得筛选条件if else不得写哭去,最后发现我好蠢,continue他不香么)
let len = this.Data.length;
let list = [];

for (let item = 0; item < len; item++) {
        let diffValue = now - this.Data[item].turnoverTime;
        if (time != "All") {
          if (!(diffValue / hour < time)) {
            continue;
          }
        }
        if (side != "All") {
          if (side != this.Data[item].side) {
            continue;
          }
        }
        if (num != "All") {
          if (Math.abs(this.Data[item].qty) < num) {
            continue;
          }
        }
        if (country != "All") {
          if (Number(country) != this.Data[item].channelId) {
            continue;
          }
        }
        list.push(this.positionData[item]);

es6 ⇒ map用得太多都忘记使用for

区别:

  • map()返回一个新数组,原数组不会改变。
  • 没有办法终止或者跳出forEach()循环,除非抛出异常,所以想执行一个数组是否满足什么条件,返回布尔值,可以用一般的for循环实现,或者用Array.every()或者Array.some();
["1", "2", "3"].map(parseInt);  //结果  [1, NaN, NaN]   
如果想得到[1, 2,3]应该这么做

function returnInt(element){
  return parseInt(element,10);
}
 
["1", "2", "3"].map(returnInt); 

这主要是因为 parseInt()默认有两个参数,第二个参数是进制数。当parsrInt没有传入参数的时候,而map()中的回调函数时候,会给它传三个参数,第二个参数就是索引,明显不正确,所以返回NaN了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值