Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const data = {
- "id":0,
- "name":"Regra 01",
- "type":"ICMS",
- "subtype":"ICMSCost",
- "filters":{
- "originStep":{
- "origin":"",
- "contract":"",
- "profile":"",
- "consumer":""
- },
- "destinyStep":{
- "state":"",
- "unit":"",
- "profile":""
- },
- "parametersStep":{
- "origin":"",
- "contract":"",
- "state":"",
- "profile":"",
- "consumer":""
- }
- },
- "contracts":[
- {
- "provider":0,
- "contracts":[
- 1,
- 2,
- 0
- ]
- },
- {
- "provider":1,
- "contracts":[
- 3,
- 2,
- 1,
- 0
- ]
- },
- {
- "provider":2,
- "contracts":[
- 0,
- 1,
- 2
- ]
- }
- ],
- "generators":[
- 0
- ],
- "states":[
- {
- "state":0,
- "units":[
- 0,
- 1,
- 2,
- 3
- ]
- },
- {
- "state":1,
- "units":[
- 2,
- 1,
- 0
- ]
- }
- ],
- "consumptionOrder":[
- {
- "provider":1,
- "contract":1,
- "state":1,
- "unit":1,
- "order":1,
- "value":""
- },
- {
- "provider":2,
- "contract":2,
- "state":2,
- "unit":2,
- "order":2,
- "value":""
- },
- {
- "provider":3,
- "contract":3,
- "state":3,
- "unit":3,
- "order":3,
- "value":""
- }
- ]
- }
- console.log(data)
- console.log('-------------------')
- const flattenContractsByProviders = data.contracts.reduce((acc, { contracts, provider }) => {
- const contractsWithProvider = contracts.map(c => ({
- contract: c,
- provider
- }))
- return [
- ...acc,
- ...contractsWithProvider
- ]
- }, [])
- console.log(flattenContractsByProviders)
- console.log('-----------------')
- const flattenUnitsByStates = data.states.reduce((acc, { state, units }) => {
- const unitsWithState = units.map(s => ({
- state,
- unit: s
- }))
- return [
- ...acc,
- ...unitsWithState
- ]
- }, [])
- console.log(flattenUnitsByStates)
- const a = flattenContractsByProviders.reduce((acc, item) => {
- const b = flattenUnitsByStates.map(itemB => ({
- ...item,
- ...itemB
- }))
- return [
- ...acc,
- ...b
- ]
- }, [])
- console.log(a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement