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

  • 在工作中遇到了这样的一个问题
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")
              }
            }
          }

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

你可能感兴趣的:(判断数组对象中是否存在有重复值)