Фильтр ионных массивов не фильтрует - PullRequest
0 голосов
/ 25 мая 2018

У меня есть список элементов в массиве.Каждый элемент в массиве содержит следующее:

id
date
status
name
description

Я пытаюсь создать второй массив, который будет содержать все элементы из первого массива, где статус = 'в ожидании'.

Я выполняю следующий код в моем файле home.ts:

showPending(){
    this.pendingItems = this.items;
    this.pendingItems.filter((item) => {return item.status === 'pending'});
    this.navCtrl.push(ShowPendingPage, {
    pendingItems: this.pendingItems      
    });
  }

Когда я запускаю свое приложение, я добавляю 3 элемента в массив items.2 элемента имеют статус ожидающих, а 1 имеет статус завершенных.Когда я выполняю приведенный выше код, ShowPendingPage толкается.Я выполняю этот код в файле ShowPendingPage.ts:

this.passedArray = this.navParams.get('pendingItems')

и выполняю в своем ShowPendingPage.html следующее:

  <ion-content>
  <ion-list>
      <ion-item-sliding *ngFor="let item of passedArray">
        <ion-item [ngClass]="item.status">
            {{item.name}} - Added {{item.date}}
        </ion-item>  
        <ion-item-options side="right">
          <button ion-button color="light" (click)="viewItem(item)">View</button>
        </ion-item-options>
      </ion-item-sliding>
    </ion-list>
  </ion-content>

Полученный массив содержит все 3 элемента оригиналамассив.Он должен содержать только 2 элемента, два из которых я устанавливаю в состояние ожидания.

Кто-нибудь с лучшими глазами, чем я, может видеть то, что мне не хватает?

1 Ответ

0 голосов
/ 25 мая 2018

Array.prototype.filter создает новый массив с отфильтрованными элементами и не на месте .

Метод filter () создает новый массивсо всеми элементами, которые проходят тест, реализованный предоставленной функцией.

Также

filter () не изменяет массив, в котором он вызывается.

Вы просто должны установить его в своей переменной.

this.pendingItems = this.pendingItems.filter((item) => {return item.status === 'pending'});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...