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"
          }]
        }
      ]
    }]
  ]
}

function getErrors(errorArray) {
  /*return _.reduce(errorArray, (acc, value, key) => {
    console.log('value: ', value)
    console.log('key: ', key)

    return acc
  })*/

  const returnObject = Object.keys(errorArray).forEach(function(key) {

      const obj = errorArray[key]] obj = _.map(errorArray[key], (item) => {
      return item.message
    })

    return obj
  })
}

function errors(obj) {
	Object.keys(obj).reduce((acc, value, key) => {
  	acc[key]
    
  })
}

errors(response.errors[0])

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

    if (acc[key] === undefined) {
      acc[key] = {}
    }

    _.map(value, (item) => {
      //acc[key][]

      console.log(item)
    })

    return acc
  }, {})
})

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



//console.log(errors)