# 对象除空
移除指定对象的“空数据”,并可对特定值进行处理。
/**
* 移除对象属性
* @params obj 对象。 Object
* @params formitFn 自定义对数据格式化。(key:string,value:obj[key]):any=>newValue
* @params emptyTypes 自定义需要移除的值,默认为[null, undefined, '',{},[]]。 any[]
* @return 处理后的对象。Object
*/
export const removeEmptyObjParams = (
obj,
formitFn = (_key, value) => value,
emptyTypes = [null, undefined, {}, [], ''],
) => {
return Object.keys(obj)
.filter(
(key) =>
!emptyTypes.some((item) => {
return typeof item === 'object' && item !== null
? JSON.stringify(item) === JSON.stringify(obj[key])
: item === obj[key];
}),
)
.reduce((acc, key) => ({ ...acc, [key]: formitFn(key, obj[key]) }), {});
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23