如果我有一个对象,例如
const obj = {
field: {
subfield: {
innerObj: { a: ' asdasd asdas . ' },
innerArr: [' s ', ' ssad . '],
innerArrObj: [ { b: ' adsad ' } ],
}
}
}
我想出了这样的东西,
const trimFields = (data) =>
_.mapValues(data, (element, k) =>
_.isArray(element)
? element.map((value) =>
_.isObject(value) ? trimFields(value) : trimText(value)
)
: _.isObject(element)
? trimFields(element)
: trimText(element)
);
但我想知道是否有更好/更有效的方法来做到这一点?
JSFiddle
最佳答案
我会直接在函数中切换数组/对象/其他,简化递归调用:
const trimFields = (data) =>
_.isArray(data)
? data.map(trimFields)
: _.isObject(data)
? _.mapValues(trimFields)
: trimText(data);
关于javascript - 递归 trim 对象中所有元素的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61098396/