序言
记录下最近项目里常用的数据处理方法,后续会持续更新...
内容
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;
};