【问题标题】:Remove specific property from an array of object从对象数组中删除特定属性
【发布时间】:2018-10-03 16:01:21
【问题描述】:

我遇到了从具有特定属性的数组对象拼接项目的问题。 这是解释。

  delColumn($event: any, el: any) {
if ($event.target && el > -1) {
  var colId: string = this.receivedData[0].value.columns[el].id;
  var obj = this.receivedData[0];
  obj.values.columns = obj.values.columns.filter(s => s.id != colId);
  obj.values.rows.forEach(s => {
    delete s.Col_1;
    return s;
  });
}

}

现在,我的要求是当我单击删除列时,它会进入此方法,我想删除与该方法关联的特定列和行。

提前感谢您的帮助。

【问题讨论】:

  • 感谢您的快速响应,但我试过了,但它对我不起作用(给我与功能相关的错误)。你能帮我解决我的要求吗?提前致谢。
  • 你评论了你的问题,可以评论答案吗?
  • stackoverflow.com/questions/34698905/…克隆一个没有键的对象,你可以使用函数映射你的数组

标签: javascript arrays angular typescript multidimensional-array


【解决方案1】:

使用filterforEach

obj.values.columns = obj.values.columns.filter(s => s.id != "Col_1");
obj.values.rows.forEach( s => {
   delete s.Col_1;
   return s;
});

【讨论】:

  • 我正在尝试将在几分钟内更新。感谢您的迅速协助。
  • 出现错误“TypeError: Cannot read property 'columns' of undefined”
  • @Nimmi 显示您正在测试的确切对象。
  • 我们可以去聊天吗?我不能公开分享我的代码
  • @Nimmi 最好在原始问题本身中更新输入对象等关键信息,以便对未来的读者有用。
【解决方案2】:
  rows=[{Col1:1,Value:1},
        {Col1:1,Value:2},
        {Col1:1,Value:3},
        {Col1:1,Value:4}];

  rowsNew=this.rows.map(x=>{
     return this.objectWithoutKey(x,"Col1");
  })
  objectWithoutKey(object, key){
    const {[key]: deletedKey, ...otherKeys} = object;
    return otherKeys;
  }
  ngOnInit()
  {
     console.log(this.rows);
     console.log(this.rowsNew);
  }

【讨论】:

  • 这不起作用给我代码错误。如果您能正确更新它,我真的很感激。
  • 对不起@Nimmi,根据我发布的链接,我已经更新了代码(真的我删除了旧代码并放了一个新代码)
  • 为我工作。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2015-04-08
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
  • 2017-12-06
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
相关资源
最近更新 更多