基于ID的多维数组中的对象未被删除 - Angular 4 / Ionic 3

时间:2017-11-26 00:45:37

标签: javascript angular ionic-framework ionic2 ionic3

我有一个数据结构。它如下 -

[{
   propertyoutsideid: 1,
   items: [
        {itemId: 1, something: 'something'}.
        {itemId: 2, something: 'something'}.
        {itemId: 3, something: 'something'}.
]
},{
   propertyoutsideid: 2,
   items: [
        {itemId: 4, something: 'something'}.
        {itemId: 5, something: 'something'}.
        {itemId: 6, something: 'something'}.
 ]
}
]

我问一个基本的过滤器问题,但不确定如何解决这个问题,因为这个结构是如何分层的。我正在尝试根据ID删除该项目。

Component.ts

retrieveidfunction(objectwithid){
this.allItems = this.allItems.forEach(res3 => {
   return res3.items.filter(res4 => {
      return res4.itemId != objectwithid.itemId
     }
    })
  })
}

1 个答案:

答案 0 :(得分:1)

return res4.itemId != this.objectwithid.itemId更改为

return res4.itemId != objectwithid.itemId

let allItems=[{
   propertyoutsideid: 1,
   items: [
        {itemId: 1, something: 'something'},
        {itemId: 2, something: 'something'},
        {itemId: 3, something: 'something'}
]},{
   propertyoutsideid: 2,
   items: [
        {itemId: 4, something: 'something'},
        {itemId: 5, something: 'something'},
        {itemId: 6, something: 'something'}
 ]}]

function retrieveidfunction(objectwithid){
  allItems.forEach((res3,i) => {
   allItems[i] = res3.items.filter(res4 => {
      return res4.itemId != objectwithid.itemId
   });
  });
}
let objectwithid = {itemId: 4}
retrieveidfunction(objectwithid)

console.log(allItems);