Advertisement
randomguya

Untitled

Mar 25th, 2019
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. export const addFormDataToSchema = (schema, formData) => {
  2.  
  3.     let obj = [...schema];
  4.  
  5.     formData.map((data) => {
  6.         const {uid, value} = data;
  7.         traverseAndAddValue(obj, uid, value);
  8.     });
  9.  
  10.     return obj;
  11. };
  12.  
  13. export const findNestedValue = (object, key) => {
  14.  
  15.     let value = null;
  16.  
  17.     Object.keys(object).some((k) => {
  18.  
  19.         if (k === key) {
  20.             value = object[k];
  21.  
  22.             return true;
  23.         }
  24.         if (object[k] && typeof object[k] === 'object') {
  25.             if (Array.isArray(object[k])) {
  26.                 value = findNestedValue(object[k], key);
  27.             } else {
  28.                 value = findNestedValue(object[k], key);
  29.                 //return value !== undefined;
  30.             }
  31.         }
  32.  
  33.     });
  34.  
  35.     return value;
  36. };
  37.  
  38. export const traverseAndAddValue = (x, uid, value) => {
  39.  
  40.     if (Array.isArray(x)) {
  41.         traverseArray(x, uid, value)
  42.     } else if ((typeof x === 'object') && (x !== null)) {
  43.         traverseObject(x, uid, value)
  44.     } else {
  45.     }
  46. };
  47.  
  48. export const traverseArray = (arr, uid, value) => {
  49.     arr.forEach(function (x) {
  50.         traverseAndAddValue(x, uid, value);
  51.     })
  52. };
  53.  
  54. export const traverseObject = (obj, uid, value) => {
  55.     for (let key in obj) {
  56.        
  57.         if (obj.hasOwnProperty(key)) {
  58.  
  59.             if (key === "uid" && obj[key] === uid) {
  60.                 obj['value'] = value;
  61.             }
  62.             traverseAndAddValue(obj[key], uid, value);
  63.         }
  64.     }
  65. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement