JSFiddle - React, Tailwind, and code Playground

HTML

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

JavaScript

const obj = {
    field: {
        subfield: {
            innerObj: { a: ' asdasd  asdas . ' },
            innerArr: ['  s  ', '  ssad . '],
            innerArrObj: [ { b: '   adsad  ' } ],
        }
    }
}

const trimText = field => (typeof field === 'string' ? field.replace(/^\s+|\s+$/g, '') : field);
const trimFields = data => _.mapValues(data, (element, k) => (_.isArray(element) ? element.map(value => _.isObject(value) ? trimFields(value) : trimText(value)) : _.isObject(element) ? trimFields(element) : trimText(element)));

console.log('before', obj);
console.log('after', trimFields(obj));