项目中常用数据处理方法

152 阅读1分钟

序言

记录下最近项目里常用的数据处理方法,后续会持续更新...

内容

1. 排序,先进行某个对象属性排序,然后在此基础上进行另一个属性排序

/**
 * 排序,先进行某个对象属性排序,然后在此基础上进行另一个属性排序
 * @param array 需要排序的数组 @param compairers 多个排序规则
 */
function multisort(array, ...compairers) {
    return array.sort((a, b) => {
        for (const c of compairers) {
            const r = c(a, b);
            if (r !== 0) {
                return r;
            }
        }
    });
}
multisort(aee,(a, b) => b.key1 - a.key2,
    (a, b) => b.key2 - a.key2)

2. 多条件过滤

function filterData (data) {
    const filters = {
        name:['a','b'],
        age:[18,20]
    } 
    let keys = Object.keys(filters)
    data = array.filter(item => {
        //多重条件过滤
        return keys.every(key => filters[key].includes(item[key]))
    })
    return data
} 

3.去掉属性值前后空格

function trimHandle(data) {
  let param = data;
  // 数组
  if (Object.prototype.toString.call(param) === '[object Array]') {
    param = param.map((i) => trimHandle(i));
  }
  // 对象
  if (Object.prototype.toString.call(param) === '[object Object]') {
    Object.keys(param).forEach((item) => {
      param[item] = trimHandle(param[item]);
    });
  }
  // 字符串去前后空格
  if (Object.prototype.toString.call(param) === '[object String]') {
    param = param.trim();
  }
  return param;
};