小程序前端多组图片如何滤重

发布于 2022-09-11 21:27:13 字数 948 浏览 15 评论 0

问题描述

小程序前端多组图片如何滤重,原先是可以上传重复的图片,现在要提示用户有重复的图片

相关代码

数组名qsclList:
clipboard.png
qsclList在wxml上是wx:for循环出来的。
qscllj数组保存了图片的路径
我现在要做图片滤重

clipboard.png

在每组下面分别显示重复的图。只需要同组的图不可以重复就行了
路径的后面32位是相同的就是图片,qspts[]用来保存截取32位的值
我原先是这么做的

 that.data.qsclList.forEach((item, index, arr) => {
     if (arr[index].qscllj.length != 0) {
         arr[index].qscllj.forEach(val => {
             let loc = val.lastIndexOf('.')
             let str = val.substring(loc - 32, loc)
             console.log(str) //32位的值
              that.data.qsclList[id].qspts.push(str)
              })
          }
       })
   }

发现后面的组的qspts[]会把前面所有的值存放起来。
我现在就是不知道这个滤重到底怎么做或者能帮我解决每个组的qspts[]是自己组的值

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

橙幽之幻 2022-09-18 21:27:13
 let newMap = new Map(),
    newArr = qsclList
      
  newArr.forEach((i, index) => {
    var pArr = []
    pArr.push(index + 1)
    for (let j = index + 1; j < newArr.length; j++) {
      //这个判断条件你改下
      if (newArr[j] == i) {
        pArr.push(j + 1)
      }
    }
    //这个判断其实可以移到for循环前面
    if (!newMap.get(i)) {
      newMap.set(i, pArr)
    }
  })
  let repeatArr = [...newMap].filter(i => i[1].length > 1)
  repeatArr.map(i => {
    // i:[(Value:string,repeatIndex:Number[]]
    return '第' + i[1].join(',') + '行名字重复'
  }).join(';'),

之前写的代码,应该能用啥吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文