上传文件时,删除相同的文件

产品要求:很多相同名字的文件一起上传的时候,给出警告,并且相同名字的文件只能留一个,所以需要先用哈希算法算出每个文件的哈希值,假设就是list 然后再将所有上传的文件(假设是zuizhong)里面的相同的文件删除

    var list = ["123", "345", "542", "567", "890", "123", "345", "123", "409"];
    //找出相同的元素和相同元素的位置
    function getRepeat(arr) {
      var rep = [];
      arr.forEach((item, index) => {
        if (arr.indexOf(item) != index) {
          // 匹配item在数组中第一次出现的位置和当前位置
          var obj = {};
          if (rep.length > 0) {
            var has = rep.findIndex((r) => {
              return r.value == item;
            });
            if (has != -1) {
              rep[has].key += "," + (index + 1);
            } else {
              obj.key = arr.indexOf(item) + 1 + "," + (index + 1); // 用','分隔两个重复项的下标
              obj.value = item;
              rep.push(obj);
            }
          } else {
            obj.key = arr.indexOf(item) + 1 + "," + (index + 1); // 用','分隔两个重复项的下标
            obj.value = item;
            rep.push(obj);
          }
        }
      });
      return rep;
    }
    var hh = getRepeat(list);
    var kong = [];
    var o = hh.forEach((valuee, item) => {
      var liu = valuee.key.slice(2);
      kong.push(liu);
      return kong;
    });
    //变成正常的数组
    var haha = kong.join(",").split(",");
    haha.sort((x, y) => x - y); // 正序
    //去重 加入zuizhong里面的每个元素都是一个文件 并不能确定每个元素的内部的内容
    var zuizhong = ["1", "2", "3", "4", "5", "6", "1", "2", "1", "10"];
    if (haha.length !== 0) {
      for (let i = haha.length - 1; i >= 0; i--) {
        list.splice(haha[i] - 1, 1);
      }
    }
  },
};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值