JSFiddle - React, Tailwind, and code Playground

by batcave

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>

JavaScript

const countries = [{
    "name": "Sweden",
    "regions": []
  },
  {
    "name": "United States",
    "regions": [
      "Alabama",
      "Alaska",
      "American Samoa",
      "Arizona",
      "Arkansas",
      "Armed Forces Africa",
      "Armed Forces Americas (except Canada)",
      "Armed Forces Canada",
      "Armed Forces Europe",
      "Armed Forces Middle East",
      "Armed Forces Pacific",
      "California",
      "Colorado",
      "Connecticut",
      "Delaware",
      "District of Columbia",
      "Federated States of Micronesia",
      "Florida",
      "Georgia",
      "Guam",
      "Hawaii",
      "Idaho",
      "Illinois",
      "Indiana",
      "Iowa",
      "Kansas",
      "Kentucky",
      "Louisiana",
      "Maine",
      "Marshall Islands",
      "Maryland",
      "Massachusetts",
      "Michigan",
      "Minnesota",
      "Mississippi",
      "Missouri",
      "Montana",
      "Nebraska",
      "Nevada",
      "New Hampshire",
      "New Jersey",
      "New Mexico",
      "New York",
      "North Carolina",
      "North Dakota",
      "Northern Mariana Islands",
      "Ohio",
      "Oklahoma",
      "Oregon",
      "Palau",
      "Pennsylvania",
      "Puerto Rico",
      "Rhode Island",
      "South Carolina",
      "South Dakota",
      "Tennessee",
      "Texas",
      "Utah",
      "Vermont",
      "Virgin Islands",
      "Virginia",
      "Washington",
      "West Virginia",
      "Wisconsin",
      "Wyoming"
    ]
  }
]

console.log(_.flatten(countries))


const c = _.map(countries, (country) => {
  return country.name
})

console.log('c', c)

const result = _.reduce(countries, (acc, value) => {
  acc['countries'] = [value.name]

  if (acc['states'] === undefined) {
    acc['states'] = {}
  }

  if (value.regions.length > 0) {
    acc.states[value.name] = value.regions
  }

  return acc
}, {})

console.log(result.countries)
console.log(_.get(result.states, "United States"))