判断数组对象中是否存在有重复值

  • 在工作中遇到了这样的一个问题
image

在点击确认之前要判断一下任务中的时间是否相等,有的人会选择去重操作,但是这和别的需求不一样,要提醒用户

得到的数据数组格式是这样的

dataSampling: [{
          beginTime: '2020-12-02 20:22',
          repeatable: 0,
          enabled: 0
        }, {
          beginTime: '2020-12-02 20:22',
          repeatable: 1,
          enabled: 1
        }]

下面是判断的方法,用vue开发的

const beginTime = this.dataSampling.map(value => value.beginTime);

          const beginTimeSet = new Set(beginTime);

          if (beginTimeSet.size != beginTime.length) {

            this.$message({

              message: '任务中时间有重复!',

              type: 'warning'

            });

            return false;

          }

还有另种方式

 for (i = 0; i < this.dataSampling.length - 1; i++) {
            for (j = i + 1; j < this.dataSampling.length; j++) {
              console.log(this.dataSampling[i].beginTime, this.dataSampling[j].beginTime)
              if (this.dataSampling[i].beginTime == this.dataSampling[j].beginTime) {
                this.$message({
                  message: '任务中时间有重复!',
                  type: 'warning'
                });
                console.log("if")
                return false;
              } else {
                console.log("else")
              }
            }
          }

但是这种方式有缺点,如果我要判断的是时分秒相同时就会改变了原有的数据了。所以还是上面的一种方式好点。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容