Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const data = {
  2.    "id":0,
  3.    "name":"Regra 01",
  4.    "type":"ICMS",
  5.    "subtype":"ICMSCost",
  6.    "filters":{
  7.       "originStep":{
  8.          "origin":"",
  9.          "contract":"",
  10.          "profile":"",
  11.          "consumer":""
  12.       },
  13.       "destinyStep":{
  14.          "state":"",
  15.          "unit":"",
  16.          "profile":""
  17.       },
  18.       "parametersStep":{
  19.          "origin":"",
  20.          "contract":"",
  21.          "state":"",
  22.          "profile":"",
  23.          "consumer":""
  24.       }
  25.    },
  26.    "contracts":[
  27.       {
  28.          "provider":0,
  29.          "contracts":[
  30.             1,
  31.             2,
  32.             0
  33.          ]
  34.       },
  35.       {
  36.          "provider":1,
  37.          "contracts":[
  38.             3,
  39.             2,
  40.             1,
  41.             0
  42.          ]
  43.       },
  44.       {
  45.          "provider":2,
  46.          "contracts":[
  47.             0,
  48.             1,
  49.             2
  50.          ]
  51.       }
  52.    ],
  53.    "generators":[
  54.       0
  55.    ],
  56.    "states":[
  57.       {
  58.          "state":0,
  59.          "units":[
  60.             0,
  61.             1,
  62.             2,
  63.             3
  64.          ]
  65.       },
  66.       {
  67.          "state":1,
  68.          "units":[
  69.             2,
  70.             1,
  71.             0
  72.          ]
  73.       }
  74.    ],
  75.    "consumptionOrder":[
  76.       {
  77.          "provider":1,
  78.          "contract":1,
  79.          "state":1,
  80.          "unit":1,
  81.          "order":1,
  82.          "value":""
  83.       },
  84.       {
  85.          "provider":2,
  86.          "contract":2,
  87.          "state":2,
  88.          "unit":2,
  89.          "order":2,
  90.          "value":""
  91.       },
  92.       {
  93.          "provider":3,
  94.          "contract":3,
  95.          "state":3,
  96.          "unit":3,
  97.          "order":3,
  98.          "value":""
  99.       }
  100.    ]
  101. }
  102.  
  103. console.log(data)
  104. console.log('-------------------')
  105.  
  106. const flattenContractsByProviders = data.contracts.reduce((acc, { contracts, provider }) => {
  107.   const contractsWithProvider = contracts.map(c => ({
  108.     contract: c,
  109.     provider
  110.   }))
  111.  
  112.   return [
  113.     ...acc,
  114.    ...contractsWithProvider
  115.   ]
  116. }, [])
  117.  
  118. console.log(flattenContractsByProviders)
  119.  
  120. console.log('-----------------')
  121. const flattenUnitsByStates = data.states.reduce((acc, { state, units }) => {
  122.   const unitsWithState = units.map(s => ({
  123.     state,
  124.     unit: s
  125.   }))
  126.  
  127.   return [
  128.     ...acc,
  129.    ...unitsWithState
  130.   ]
  131. }, [])
  132.  
  133. console.log(flattenUnitsByStates)
  134.  
  135. const a = flattenContractsByProviders.reduce((acc, item) => {
  136.   const b = flattenUnitsByStates.map(itemB => ({
  137.     ...item,
  138.     ...itemB
  139.   }))
  140.  
  141.   return [
  142.     ...acc,
  143.     ...b
  144.   ]
  145. }, [])
  146.  
  147. console.log(a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement