如何通过 lodash 从内部对象中删除键
How to remove a key from inner object through lodash
var result = [
{
color: "blue",
users: [
{
"name": "John",
"color": "blue",
"age": "29"
},
{
"name": "Neil",
"color": "blue",
"age": "34"
}
]
},
{
color: "green",
users: [
{
"name": "Ronn",
"color": "green",
"age": "50"
}
]
}
]
我想删除users
下的color
键。为此,我在 Lodash 中编写了以下代码片段。
var result = _.omit(result.users, ['color']);
但它给了我以下内容 { ... }
如何实现如下输出?
[
{
color: "blue",
users: [
{
"name": "John",
"age": "29"
},
{
"name": "Neil",
"age": "34"
}
]
},
{
color: "green",
users: [
{
"name": "Ronn",
"age": "50"
}
]
}
]
您必须遍历数组并使用 omit
Arguments of omit is
1)对象:源对象。
2) [paths] (…(string|string[])): 要省略的 属性 路径。
Return value
(对象): Returns 新对象。
const clone = result.map((obj) => ({
...obj,
users: obj.users.map((o) => _.omit(o, ["color"])),
}));
现场演示
您可以使用普通 JS 使用 map
轻松实现结果:
var result = [
{
color: "blue",
users: [
{
name: "John",
color: "blue",
age: "29",
},
{
name: "Neil",
color: "blue",
age: "34",
},
],
},
{
color: "green",
users: [
{
name: "Ronn",
color: "green",
age: "50",
},
],
},
];
const res = result.map((obj) => ({ ...obj, users: obj.users.map(({ color, ...rest }) => rest)}));
console.log(res);
var result = [
{
color: "blue",
users: [
{
"name": "John",
"color": "blue",
"age": "29"
},
{
"name": "Neil",
"color": "blue",
"age": "34"
}
]
},
{
color: "green",
users: [
{
"name": "Ronn",
"color": "green",
"age": "50"
}
]
}
]
我想删除users
下的color
键。为此,我在 Lodash 中编写了以下代码片段。
var result = _.omit(result.users, ['color']);
但它给了我以下内容 { ... }
如何实现如下输出?
[
{
color: "blue",
users: [
{
"name": "John",
"age": "29"
},
{
"name": "Neil",
"age": "34"
}
]
},
{
color: "green",
users: [
{
"name": "Ronn",
"age": "50"
}
]
}
]
您必须遍历数组并使用 omit
Arguments of omit is
1)对象:源对象。
2) [paths] (…(string|string[])): 要省略的 属性 路径。
Return value
(对象): Returns 新对象。
const clone = result.map((obj) => ({
...obj,
users: obj.users.map((o) => _.omit(o, ["color"])),
}));
现场演示
您可以使用普通 JS 使用 map
轻松实现结果:
var result = [
{
color: "blue",
users: [
{
name: "John",
color: "blue",
age: "29",
},
{
name: "Neil",
color: "blue",
age: "34",
},
],
},
{
color: "green",
users: [
{
name: "Ronn",
color: "green",
age: "50",
},
],
},
];
const res = result.map((obj) => ({ ...obj, users: obj.users.map(({ color, ...rest }) => rest)}));
console.log(res);