如果嵌套对象在所有嵌套对象上具有特定属性false,则删除父对象

问题描述 投票:0回答:1

基本上我有一个对象数组如下,

enter image description here

蓝色圆圈显示我需要检查的对象的属性。

如果options属性中的所有项都具有“false”模型,我想从数组中删除整个对象。

如果有真假混合,我只想保留那些真实的。

知道怎么做吗?

所以基本上因为

TheArray[1].options['key1'].model = true;

我想保留一切。

但是因为

TheArray[2].options['key1'].model = false;
TheArray[2].options['key2'].model = false;

我想删除整个TheArray[2]

如果TheArray[2]如下;

TheArray[2].options['key1'].model = true;
TheArray[2].options['key2'].model = false;

我想只保留TheArray[2].options['key1'];

我也使用角度4来做到这一点。

任何帮助将非常感激。

谢谢大家。

arrays angular object
1个回答
0
投票

那么浏览整个对象并保留好的对象呢?

for (var i = 0; i < TheArray.length; i++) {
  let checked = false;
  for (var j = 0; j < TheArray[i].options.length; j++) {
    let _this = TheArray[i].options[j]
    if ( _this.model ) {
      checked = true
      break
    }
  }
  if (!checked){
    // remove it
  }
}

这不是一个完整的答案。我的意思是,这个算法不会删除那个错误的算法,但只需删除中断部分,添加一个else语句并将其删除。

© www.soinside.com 2019 - 2024. All rights reserved.