JSFiddle - React, Tailwind, and code Playground

by Eugen Sunic

JavaScript

var json = {
  results: [{
      name: 'Name1',
      volume: 1,
      lists: [{
          list: 1,
          tags: ['hello', 'world']
        },
        {
          list: 2,
          tags: ['hello']
        }
      ]
    },
    {
      name: 'Name2',
      volume: 2,
      lists: [{
          list: 1,
          tags: ['world']
        },
        {
          list: 2,
          tags: ['hello', 'internet']
        }
      ]
    }
  ]
};

const result = json.results.reduce((acc1, x) => ([...acc1,
  ...x.lists.reduce((acc2, y) => ([...acc2,
    ...y.tags.reduce((acc3, z) => ([...acc3, {
      volume: x.volume,
      lists: y.list,
      tags: z
    }]), [])
  ]), [])
]), [])

console.log(result);