开发日常记录整理--进行中

110 阅读2分钟

css 溢出隐藏

.ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

关于 el-date-picker 时间范围的 yyyy-MM-dd 与 yyyy/MM/dd 时间范围是不同的,前者会多一天,所以范围的时候要减去一天的毫秒数,看时间格式改变,不要直接复制以前的

yyyy/MM/dd         
pickerOptions0: {
     disabledDate: (time) => {
         if (this.queryForm.createTimeEnd) {
            return time.getTime() > new Date(this.queryForm.createTimeEnd).getTime()
          }
        },
      },
      pickerOptions1: {
        disabledDate: (time) => {
          if (this.queryForm.createTimeStart) {
            return time.getTime() < new Date(this.queryForm.createTimeStart).getTime()
          }
        },
      },
yyyy-MM-dd       
pickerOptions0: {
        disabledDate: time => {
          if (this.queryForm.operateTimeEnd) {
            return time.getTime() > new Date(this.queryForm.operateTimeEnd).getTime()
          }
        }
      },
      pickerOptions1: {
        disabledDate: time => {
          if (this.queryForm.operateTimeBegin) {
            return (
              time.getTime() <
              new Date(this.queryForm.operateTimeBegin).getTime() - 86400000
            )
          }
        }
      },

对象数组去重 js

  1. 使用Set可以实现对数组对象的去重,Set会根据元素的唯一性自动删除重复的元素。
let arr = [
    {
        "name": "张三",
        "age": 18
    },
    {
        "name": "李四",
        "age": 20
    },
    {
        "name": "张三",
        "age": 18
    },
    {
        "name": "王五",
        "age": 22
    }
];

let result = Array.from(new Set(arr.map(JSON.stringify)))
                  .map(JSON.parse);
console.log(result);

  1. 使用reduce()方法
let arr = [
    {
        "name": "张三",
        "age": 18
    },
    {
        "name": "李四",
        "age": 20
    },
    {
        "name": "张三",
        "age": 18
    },
    {
        "name": "王五",
        "age": 22
    }
];

let result = arr.reduce((prev, cur) => {
    if (!prev.find(item => item.name === cur.name && item.age === cur.age)) {
        prev.push(cur);
    }
    return prev;
}, []);

console.log(result);

AICODE 优化的代码

const tree = (resp.rows || []).filter(item => item.productCode == 'PRODUCT_SBED' || item.productCode == 'PRODUCT_NED')
        const arr = tree.map(item => item.children)
        const newArr = _.flattenDepth(arr, 1)
        console.log(newArr, 'newArr');
        const newArr2 = newArr.map(item => {
          item.isParentGroup = true
          return item
        }).filter(res => res.groupName != '通用关联')
        console.log(newArr2, 'newArr2');
        this.groupTree = (filterAsyncArr(newArr2) || []).reduce((prev, cur) => {
          if (!prev.find(item => item.name === cur.name && item.age === cur.age)) {
            prev.push(cur);
          }
          return prev;
        }, []);
        console.log(this.groupTree, 'newArr2==>>this.groupTree');
​
这段代码的功能是获取resp.rows中productCode属性为"PRODUCT_SBED""PRODUCT_NED"的元素,然后将它们的children属性取出来扁平化为新的数组,再将数组中每个元素的isParentGroup属性设置为true,并且过滤掉groupName属性为"通用关联"的元素,最后对新数组去重并赋值给this.groupTree属性。
​
以下是对代码进行纠错与优化后的代码:
const tree = (resp.rows || [])
  .filter(item => item.productCode === 'PRODUCT_SBED' || item.productCode === 'PRODUCT_NED')
  .flatMap(item => item.children);
​
const uniqueArr = Array.from(new Set(tree.map(JSON.stringify)))
  .map(JSON.parse)
  .map(item => {
    item.isParentGroup = true;
    return item;
  })
  .filter(res => res.groupName !== '通用关联');
​
this.groupTree = uniqueArr;
console.log(this.groupTree, 'this.groupTree');
​
​
​
​
​
​
代码优化
const spouseCheck = res.spouseCheck || ''
        const twoElemConsistent = res.twoElemConsistent || ''
        let text = ''
        if (spouseCheck == '1' && twoElemConsistent == '1') {
          text = '(配偶数据一致,二要素一致)'
        } else if (spouseCheck == '2' && twoElemConsistent == '1') {
          text = text + '(配偶数据不一致,二要素一致)'
        } else if (spouseCheck == '1' && twoElemConsistent == '2') {
          text = '(配偶数据一致,二要素不一致)'
        } else if (spouseCheck == '2' && twoElemConsistent == '2') {
          text = '(配偶数据不一致,二要素不一致)'
        } else if (spouseCheck == '' && twoElemConsistent == '1') {
          text = '(二要素一致)'
        } else if (spouseCheck == '' && twoElemConsistent == '2') {
          text = '(二要素不一致)'
        } else if (spouseCheck == '1' && twoElemConsistent == '') {
          text = '(配偶数据一致)'
        } else if (spouseCheck == '2' && twoElemConsistent == '') {
          text = '(配偶数据不一致)'
        } else if (spouseCheck == '' && twoElemConsistent == '') {
          text = ''
        }
优化后:
const spouseCheck = res.spouseCheck ?? '';
const twoElemConsistent = res.twoElemConsistent ?? '';
let text = '';
​
switch(`${spouseCheck}${twoElemConsistent}`) {
  case '11': 
    text = '(配偶数据一致,二要素一致)';
    break;
  case '21':
    text = '(配偶数据不一致,二要素一致)';
    break;
  case '12':
    text = '(配偶数据一致,二要素不一致)';
    break;
  case '22':
    text = '(配偶数据不一致,二要素不一致)';
    break;
  case '01':
    text = '(二要素一致)';
    break;
  case '02':
    text = '(二要素不一致)';
    break;
  case '10':
    text = '(配偶数据一致)';
    break;
  case '20':
    text = '(配偶数据不一致)';
    break;
  default:
    text = '';
}