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));