如何使用 lodash trim 来自对象数组的键和值
How to trim both key and value from an array of objects using lodash
我有一个对象数组,如下所示。
{
"Id": 11,
"name ": "xxN "
}
如何使用 lodash trim
方法来 trim 键和值。
{
"Id": 11,
"name": "xxN"
}
预计:
一定要用Lodash吗?香草 JavaScript:
result = Object.fromEntries(Object.entries(data).map(([key, value]) =>
[key.trim(), typeof value == 'string' ? value.trim() : value]))
使用 lodash trim 方法
const arr = [
{
Id: 11,
"name ": "xxN ",
},
{
Id: 12,
"name ": " yyK ",
},
];
const result = arr.map((o) =>
Object.fromEntries(
Object.entries(o).map(([k, v]) => [k, typeof v === "string" ? _.trim(v) : v])
)
);
console.log(result);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
为了完整起见,这里有一个使用 _.transform()
的 Lodash 解决方案
const obj = {
"Id": 11,
"name ": "xxN "
}
const transformed = _.transform(obj, (result, value, key) => {
result[key.trim()] = typeof value === "string" ? value.trim() : value
})
console.log(transformed)
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
这有额外的好处,可以生成一个与原始原型相同的新对象,这可能方便也可能不方便。
如果你支持 Vanilla js 会更好但有 lodash
var trimmed = _.fromPairs(
_.map(input, (value, key) => [
_.trim(key),
typeof value === "string" ? _.trim(value) : value
])
);
我有一个对象数组,如下所示。
{
"Id": 11,
"name ": "xxN "
}
如何使用 lodash trim
方法来 trim 键和值。
{
"Id": 11,
"name": "xxN"
}
预计:
一定要用Lodash吗?香草 JavaScript:
result = Object.fromEntries(Object.entries(data).map(([key, value]) =>
[key.trim(), typeof value == 'string' ? value.trim() : value]))
使用 lodash trim 方法
const arr = [
{
Id: 11,
"name ": "xxN ",
},
{
Id: 12,
"name ": " yyK ",
},
];
const result = arr.map((o) =>
Object.fromEntries(
Object.entries(o).map(([k, v]) => [k, typeof v === "string" ? _.trim(v) : v])
)
);
console.log(result);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
为了完整起见,这里有一个使用 _.transform()
const obj = {
"Id": 11,
"name ": "xxN "
}
const transformed = _.transform(obj, (result, value, key) => {
result[key.trim()] = typeof value === "string" ? value.trim() : value
})
console.log(transformed)
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
这有额外的好处,可以生成一个与原始原型相同的新对象,这可能方便也可能不方便。
如果你支持 Vanilla js 会更好但有 lodash
var trimmed = _.fromPairs(
_.map(input, (value, key) => [
_.trim(key),
typeof value === "string" ? _.trim(value) : value
])
);