如何使用lodash对对象数组的键和值同时执行trim去首尾空格操作
实现方案
你可以通过遍历对象的所有键值对,分别对键、以及字符串类型的值执行_.trim操作即可,数字/布尔等非字符串类型的值不需要做trim处理,避免类型被意外转换。
单对象处理代码示例
const _ = require('lodash'); function trimObjectKeysAndValues(obj) { return _.transform(obj, (result, value, key) => { // 去除键的首尾空格 const trimmedKey = _.trim(key); // 仅对字符串类型的值执行trim,其他类型保留原值 const trimmedValue = _.isString(value) ? _.trim(value) : value; result[trimmedKey] = trimmedValue; }, {}); } // 测试用例 const originObj = { "Id": 11, "name ": "xxN " }; const result = trimObjectKeysAndValues(originObj); console.log(result); // 输出 { Id: 11, name: 'xxN' }
处理对象数组的方法
只需要对数组的每一项调用上面的封装方法即可:
const originArr = [ { "Id": 11, "name ": "xxN " }, { "Id": 12, " age ": 23, " address ": " 北京朝阳区 " } ]; const resultArr = originArr.map(item => trimObjectKeysAndValues(item));
扩展说明
如果你的对象存在嵌套层级,可以在函数内增加递归判断,当值是对象类型时递归调用trimObjectKeysAndValues即可适配嵌套场景。_.trim方法在lodash v3及以上版本均可正常使用。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

