常用工具函数,持续更新ing

55 阅读1分钟

枚举值转列表

const = transfer(arr, value, {
  Multiple = '',
  splitLab = ',',
  label = 'label',
  val = 'value',
  noMatchTip = ''
} = {}) {
  if (!arr) {
    return '';
  }
  if (!value && String(value) !== '0') {
    return ''
  }
  if (Multiple && value.indexOf(`${splitLab}`) > -1) {
    let valueArr = value.split(`${splitLab}`);
    let str = '';
    valueArr.forEach(item => {
      let arrItem = arr.find(itemChild => {
        return itemChild[val] == item;
      });
      str += (arrItem ? arrItem[label] : noMatchTip) + ',';
    });
    return str.substr(0, str.length - 1);
  } else {
    let item = arr.find(item => {
      return item[val] === value;
    });
    return item ? item[label] : noMatchTip;
  }
}

树形数据扁平化

const getJsonTree = function(data, options, pidvalue = null) {
  var result = [], temp;
  var {pid, id} = options;
  for (var i = 0; i < data.length; i++) {
      if (data[i][pid] == pidvalue) {
          var obj = data[i];
          temp = getJsonTree(data, options, data[i][id]);
          if (temp.length > 0) {
              obj.children = temp;
          }
          result.push(obj);
      }
  }
  return result;
}

金额千分位

function NumFormat(num) {
  var f_x = parseFloat(num);
  if (isNaN(f_x)) {
    return 0;
  }
  var f_x = Math.round(num * 100) / 100;
  var s_x = f_x.toString();
  var pos_decimal = s_x.indexOf('.');
  if (pos_decimal < 0) {
    pos_decimal = s_x.length;
    s_x += '.';
  }
  while (s_x.length <= pos_decimal + 2) {
    s_x += '0';
  }
  return (s_x + '').replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g, '$1,');
}

文件转换base64

function fileBase(file, name) {
  return new Promise((resolve, reject) => {
    let fileReader = new FileReader()
    fileReader.onload = (function () {
      resolve(this.result) // 返回
    })()
    fileReader.readAsDataURL(file)
  })
}

数组去重

function unique(arr, key) {
  const map = new Map()
  return arr.filter((item) => !map.has(item[key] + '') && map.set(item[key] + '', 1))
}

值非空判断

const isEmpty = x => x === undefined || x === null
const isEmptyInclude0 = x => x === undefined || x === null || x === 0