如何从嵌套的对象数组中删除对象属性?
How to remove object properties from nested arrays of objects?
我试图在数组不工作时从数组中的每个对象中删除这 2 个属性。每个对象都在一个数组中。我的意思是主数组包含对象数组。有没有不使用 map() 两次的简单方法来解决它?在这种情况下如何 return 主要修改数组?
const modifiedItems = this.items.map(item => {
delete item.created,
delete item.removed
return item
})
数据如下所示:
this.items = [
[{ removed: 1, created: 1, a:2, b: 2, c: 3}]
[{ removed: 1, created: 1, a:2, b: 2, c: 3}, { removed: 1, created: 1, a:2, b: 2, c: 3},]
];
上面的代码不起作用,因为它没有映射到主数组中的数组。如何最好地从位于主数组中的所有数组的每个对象中删除这些属性?
为什么不直接删除 return 没有您要删除的属性的对象。
您可以解构要删除的属性,然后使用 rest parameters 语法将其他属性收集到变量中。在此之后,您只需要 return 包含除您要删除的属性之外的所有属性的变量。
const modifiedItems = this.items.map(
({ created, removed, ...rest }) => rest
);
以下代码片段显示了一个示例:
const arr = [
{ removed: 1, created: 1, a:2, b: 2, c: 3},
{ removed: 1, created: 1, a:2, b: 2, c: 3},
{ removed: 1, created: 1, a:2, b: 2, c: 3},
];
const modifiedItems = arr.map(
({ created, removed, ...rest }) => rest
);
console.log(modifiedItems);
编辑:
在您的例子中,this.items
是一个包含嵌套数组的数组。因此,要从嵌套数组中的对象中删除属性,您还需要映射每个嵌套数组。
以下代码片段显示了一个示例:
const items = [
[ { removed: 1, created: 1, a: 2, b: 2, c: 3 } ],
[
{ removed: 1, created: 1, a: 2, b: 2, c: 3 },
{ removed: 1, created: 1, a: 2, b: 2, c: 3}
]
];
const modifiedItems = items.map(subArr => {
return subArr.map(({ created, removed, ...rest }) => rest)
});
console.log(modifiedItems);
我试图在数组不工作时从数组中的每个对象中删除这 2 个属性。每个对象都在一个数组中。我的意思是主数组包含对象数组。有没有不使用 map() 两次的简单方法来解决它?在这种情况下如何 return 主要修改数组?
const modifiedItems = this.items.map(item => {
delete item.created,
delete item.removed
return item
})
数据如下所示:
this.items = [
[{ removed: 1, created: 1, a:2, b: 2, c: 3}]
[{ removed: 1, created: 1, a:2, b: 2, c: 3}, { removed: 1, created: 1, a:2, b: 2, c: 3},]
];
上面的代码不起作用,因为它没有映射到主数组中的数组。如何最好地从位于主数组中的所有数组的每个对象中删除这些属性?
为什么不直接删除 return 没有您要删除的属性的对象。
您可以解构要删除的属性,然后使用 rest parameters 语法将其他属性收集到变量中。在此之后,您只需要 return 包含除您要删除的属性之外的所有属性的变量。
const modifiedItems = this.items.map(
({ created, removed, ...rest }) => rest
);
以下代码片段显示了一个示例:
const arr = [
{ removed: 1, created: 1, a:2, b: 2, c: 3},
{ removed: 1, created: 1, a:2, b: 2, c: 3},
{ removed: 1, created: 1, a:2, b: 2, c: 3},
];
const modifiedItems = arr.map(
({ created, removed, ...rest }) => rest
);
console.log(modifiedItems);
编辑:
在您的例子中,this.items
是一个包含嵌套数组的数组。因此,要从嵌套数组中的对象中删除属性,您还需要映射每个嵌套数组。
以下代码片段显示了一个示例:
const items = [
[ { removed: 1, created: 1, a: 2, b: 2, c: 3 } ],
[
{ removed: 1, created: 1, a: 2, b: 2, c: 3 },
{ removed: 1, created: 1, a: 2, b: 2, c: 3}
]
];
const modifiedItems = items.map(subArr => {
return subArr.map(({ created, removed, ...rest }) => rest)
});
console.log(modifiedItems);