关于javascript:两个数组拿相同元素数组去重两个日期区间段合并

55次阅读

共计 1112 个字符,预计需要花费 3 分钟才能阅读完成。

两个数组中雷同元素取出来

 getArrEqual(arr1, arr2) {let newArr = []
        for (let i = 0; i < arr2.length; i++) {for (let j = 0; j < arr1.length; j++) {if (arr1[j] === arr2[i]) {newArr.push(arr1[j])
            }
          }
        }
        return newArr
      },

数组去重

 unique(arr) {
        // 初始化时,使新数组的第一个元素为原数组的第一个元素
        let newArr = [arr[0]]
        // 遍历原数组
        for (let i = 1; i < arr.length; i++) {
          let flag = false
          // 遍历新数组
          for (let j = 0; j < newArr.length; j++) {
            // 判断新数组当中是否含有与原数组雷同的元素,如果有则跳过
            // 如果没有,则将原数组中的元素放入新数组里即可
            if (arr[i] === newArr[j]) {
              flag = true
              break
            }
          }
          if (!flag) {newArr.push(arr[i])
          }
        }

        return newArr
      },

两个日期区间合并

  isDateIntersection(start1, end1, start2, end2) {var startdate1 = new Date(start1.replace('-', '/').replace('-', '/'))
        var enddate1 = new Date(end1.replace('-', '/').replace('-', '/'))

        var startdate2 = new Date(start2.replace('-', '/').replace('-', '/'))
        var enddate2 = new Date(end2.replace('-', '/').replace('-', '/'))

        if (startdate1 >= startdate2 && startdate1 <= enddate2) {
          //startdate1 介于另一个区间之间
          return [start1, enddate1 > enddate2 ? end2 : end1]
        }

        if (enddate1 >= startdate2 && enddate1 <= enddate2) {
          //enddate1 介于另一个区间之间
          return [startdate1 <= startdate2 ? start2 : start1, end1]
        }

        if (startdate1 <= startdate2 && enddate1 >= enddate2) {
          //startdate1-enddate1 的区间大于另一个区间,且另一个区间在 startdate1-enddate1 之间
          return [start2, end2]
        }

        return []},

正文完
 0