微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从对象的嵌套数组中删除对象属性? 编辑:

如何解决如何从对象的嵌套数组中删除对象属性? 编辑:

我正在尝试从数组中的每个对象中删除这2个属性,但是该属性不起作用。每个对象都在数组内部。我的意思是主数组包含对象数组。有没有一种简单的方法可以解决此问题,而无需两次使用map()?以及在这种情况下如何返回主要的修改数组?

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,c: 3},{ removed: 1,]
];

上面的代码不起作用,因为它没有映射到主数组中的数组。如何最好地从位于主数组中的所有数组的每个对象中删除这些属性

解决方法

为什么不删除而不是删除不具有要删除属性的对象。

您可以解构要删除的属性,然后使用rest parameters语法将其他属性收集到变量中。之后,您只需要返回包含除您要删除的属性之外的所有属性的变量即可。

const modifiedItems = this.items.map(
   ({ created,removed,...rest }) => rest
);

以下代码段显示了一个示例:

const arr = [
  { removed: 1,created: 1,a:2,b: 2,c: 3},{ removed: 1,];

const modifiedItems = arr.map(
   ({ created,...rest }) => rest
);

console.log(modifiedItems);

编辑:

在您的情况下,this.items是一个包含嵌套数组的数组。因此,要从嵌套数组内部的对象中删除属性,您还需要映射每个嵌套数组。

以下代码段显示了一个示例:

const items = [
  [ { removed: 1,a: 2,c: 3 } ],[
    { removed: 1,c: 3 },c: 3}
  ]
];

const modifiedItems = items.map(subArr => {
  return subArr.map(({ created,...rest }) => rest)
});

console.log(modifiedItems);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。