Удалить родительский объект, если у вложенного объекта есть определенное свойство как ложное во всех вложенных объектах - PullRequest
0 голосов
/ 13 сентября 2018

В основном у меня есть массив объектов следующим образом,

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'];

Также я использую Angular 4 для этого.

Любая помощь будет принята с благодарностью.

Спасибо всем заранее.

1 Ответ

0 голосов
/ 13 сентября 2018

Как насчет просмотреть все объекты и сохранить тот, который в порядке?

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 и удаляет его там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...