封装JS方法——多条件查询、批量操作

多条件查询

filter(condition, data) {
      return data.filter((item) => {
        return Object.keys(condition).every((key) => {
          return String(item[key])
            .toLowerCase()
            .includes(String(condition[key]).trim().toLowerCase());
        });
      });
    },

调用时:

search(){
	this.filter(this.keyWord, this.tableData)

以上代码中,使用了以下的api:

  • filter():数组的过滤器方法
  • Object.keys():es6提供的方法,用来获取对象键值对的键的集合
  • every():数组的every方法,因为检查数组内的所有元素是否都满足 某一条件,如果都满足返回true,.如果有一项元素不满足就返回false。
  • includes():es7中提供的新方法,用于检测某字符串中是否包含给定的值,如果有返回true,没有返回false,数组中也有该方法。

批量删除

batchDel(mulData,tableData) {
      let flags = [];// 存放的是所有选中行的标志字符
      let flagList = []; // 存放的是渲染表格数据的标志字符。例如table的显示数据
      mulData.forEach((value) => { // 循环遍历得到所有的标志字符列表
        flags.push(value.id);
      });
      tableData.forEach((value) => { // 循环遍历得到选中行的标志字符列表
        flagList.push(value.id);
      });
      this.$confirm("此操作将删除数据,", "是否继续?", "提示", {
        confirmButtonText: "确定",
        confirmButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          flags.forEach((value) => { // 得到相应的下标
            let flag = flagList.indexOf(value);
            tableData.splice(flag, 1);
          });
          this.$refs.multipleTable.clearSelection(); // 将表格选中状态换为为选中
          this.$message({
            type: "success",
            message: "删除成功",
          });
        })
        .catch(() => {});
    },

调用时

this.batchDel(this.multipleTable,this.tableData);
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值