error message

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 result = {}
_.forEach(_.flatten(response.errors), item => {
	_.forOwn(item, (v, k) => {
  	_.forOwn(v, (v2, k2) => {
    	_.forOwn(v2, (v3, k3) => {
      	_.set(result, [k, k3], _.map(v3, 'message'))
      })
    })
  })
})
console.log(result)