@@ -3,7 +3,7 @@ import { isObject, isArray } from '../utils';
33
44export default ( values : any , notFilter ?: boolean ) => {
55 const recursiveArray = ( list : any [ ] ) => {
6- const result = ( list || [ ] ) . map ( item => {
6+ let result = list . map ( item => {
77 if ( isObject ( item ) ) {
88 return recursiveObj ( item , false ) ;
99 }
@@ -12,15 +12,19 @@ export default (values: any, notFilter?: boolean) => {
1212 }
1313 return item ;
1414 } ) ;
15-
1615 if ( Object . keys ( result ) . length === 0 ) {
1716 return undefined ;
1817 }
1918 return result ;
2019 } ;
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 => {
2428 const item = obj [ key ] ;
2529
2630 if ( isObject ( item ) ) {
@@ -29,13 +33,12 @@ export default (values: any, notFilter?: boolean) => {
2933
3034 if ( isArray ( item ) ) {
3135 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 ) ;
3639 }
3740 }
38- }
41+ } ) ;
3942
4043 obj = omitBy ( obj , isUndefined ) ;
4144 if ( Object . keys ( obj ) . length === 0 && filter ) {
0 commit comments