为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕侠2389804 2023-05-19 16:13:49
我试图在数组不工作时从数组中的每个对象中删除这两个属性。每个对象都在一个数组中。我的意思是主数组包含对象数组。有没有不使用 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, created: 1, a:2, b: 2, c: 3}, { removed: 1, created: 1, a:2, b: 2, c: 3},]];上面的代码不起作用,因为它没有映射到主数组中的数组。如何最好地从位于主数组中的所有数组的每个对象中删除这些属性?
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

与其删除,不如返回一个没有要删除的属性的对象。

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

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);


查看完整回答
反对 回复 2023-05-19
  • 1 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信