Переглянути джерело

[bug-670] 修复替换null方法bug,递归替换

cfort 2 роки тому
батько
коміт
b7785b1118
1 змінених файлів з 20 додано та 3 видалено
  1. 20 3
      src/utils/util.js

+ 20 - 3
src/utils/util.js

@@ -282,17 +282,34 @@ const util = {
      * 替换对象中的null为空字符串
      * @param  {Object} obj 目标对象
      */
+    // replaceNullWithEmpty: function (obj) {
+    //     return mapValues(obj, value => {
+    //         if (value === null) {
+    //             return ''
+    //         } else if (typeof value === 'object') {
+    //             return mapValues(value, v => (v === null ? '' : v))
+    //         } else {
+    //             return value
+    //         }
+    //     })
+    // },
     replaceNullWithEmpty: function (obj) {
-        return mapValues(obj, value => {
+        function replaceValue(value) {
             if (value === null) {
                 return ''
             } else if (typeof value === 'object') {
-                return mapValues(value, v => (v === null ? '' : v))
+                if (Array.isArray(value)) {
+                    return value.map(item => replaceValue(item))
+                } else {
+                    return mapValues(value, v => replaceValue(v))
+                }
             } else {
                 return value
             }
-        })
+        }
+        return replaceValue(obj)
     }
+    
 }
 
 export default util