@@ -3,7 +3,7 @@ import { isObject, isArray } from '../utils';
3
3
4
4
export default ( values : any , notFilter ?: boolean ) => {
5
5
const recursiveArray = ( list : any [ ] ) => {
6
- const result = ( list || [ ] ) . map ( item => {
6
+ let result = list . map ( item => {
7
7
if ( isObject ( item ) ) {
8
8
return recursiveObj ( item , false ) ;
9
9
}
@@ -12,15 +12,19 @@ export default (values: any, notFilter?: boolean) => {
12
12
}
13
13
return item ;
14
14
} ) ;
15
-
16
15
if ( Object . keys ( result ) . length === 0 ) {
17
16
return undefined ;
18
17
}
19
18
return result ;
20
19
} ;
21
-
22
- const recursiveObj = ( obj : any , filter = true ) => {
23
- for ( let key of Object . keys ( obj ) ) {
20
+
21
+ const recursiveObj = ( _obj : any , filter = true ) => {
22
+ if ( _obj . _isAMomentObject ) {
23
+ return _obj ;
24
+ }
25
+
26
+ let obj = omitBy ( _obj , isUndefined ) ;
27
+ Object . keys ( obj ) . forEach ( key => {
24
28
const item = obj [ key ] ;
25
29
26
30
if ( isObject ( item ) ) {
@@ -29,13 +33,12 @@ export default (values: any, notFilter?: boolean) => {
29
33
30
34
if ( isArray ( item ) ) {
31
35
const data = recursiveArray ( item ) ;
32
- if ( notFilter || ! data ) {
33
- obj [ key ] = data ;
34
- } else {
35
- obj [ key ] = ( data || [ ] ) . filter ( ( item : any ) => item !== undefined ) ;
36
+ obj [ key ] = data ;
37
+ if ( ! notFilter && data ) {
38
+ obj [ key ] = data . filter ( ( item : any ) => item !== undefined ) ;
36
39
}
37
40
}
38
- }
41
+ } ) ;
39
42
40
43
obj = omitBy ( obj , isUndefined ) ;
41
44
if ( Object . keys ( obj ) . length === 0 && filter ) {
0 commit comments