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 response = {
  "success": false,
  "errors": [
    [{
      "companyProfile": [{
          "dunsNumber": [{
            "message": "'Duns Number' must not be empty.",
            "code": "required"
          }]
        },
        {
          "registrationNumber": [{
            "message": "'Registration Number' must not be empty.",
            "code": "required"
          }]
        },
        {
          "vatNumber": [{
            "message": "'Vat Number' must not be empty.",
            "code": "required"
          }]
        },
        {
          "eoriNumber": [{
            "message": "'Eori Number' must not be empty.",
            "code": "required"
          }]
        }
      ],
      "invoiceAddress": [{
          "dunsNumber": [{
            "message": "'Duns Number' must not be empty.",
            "code": "required"
          }]
        },
        {
          "registrationNumber": [{
            "message": "'Registration Number' must not be empty.",
            "code": "required"
          }]
        },
        {
          "vatNumber": [{
            "message": "'Vat Number' must not be empty.",
            "code": "required"
          }]
        },
        {
          "eoriNumber": [{
            "message": "'Eori Number' must not be empty.",
            "code": "required"
          }]
        }
      ]
    }]
  ]
}

const wantedResult = {
  companyProfile: {
    firstName: ['isRequiredMessage'],
    email: ['isRequiredMessage', 'isNotValidEmailMessage']
  }
}

function objectErrors(arr) {
  return _.reduce(arr, (acc, value, key) => {
    console.log(key)
    console.log(value)

    return acc
  })
}

const errors = _.forEach(response.errors[0], (section) => {
  return _.reduce(section, (acc, value, key) => {
    acc[key] = {

    }

    objectErrors(value)
    console.log('value: ', value)

    return acc
  }, {})
})



console.log(errors)