title: UI not updating when filtering data with pipe
body: <p>HTML:</p>
  <pre><code>&lt;div class=&quot;box&quot; *ngFor=&quot;let game of gameData | gameFilter: searchText | slice:1; let i = index&quot;&gt;
  </code></pre>
  <p>Pipe:</p>
  <pre><code>export class GameFilterPipe implements PipeTransform {
  
    transform(items: any, searchText: string): any[] {
      if (!items) {
        return [];
      }
      if (!searchText) {
        return items;
      }
      searchText = searchText.toLowerCase();
  
      let timeout;
      if (timeout) { clearTimeout(timeout); }
      timeout = setTimeout(() =&gt; {
        performSearch(searchText);
      }, 2000);
  
      function performSearch(txt) {
        if (txt.length &lt; 5) { return; }
        const filtered = items.filter((e: any, i: number) =&gt; {
          if (i &gt; 0) {
            return e.title.toLowerCase().includes(txt);
          }
        });
        console.log('filtered ', filtered); // logs data after change
        return filtered;
      }
    }
  }
  </code></pre>
  <p>I see the data logged after filter but the UI doesn't update. I tried both <code>pure and impure</code> but still doesn't work.</p>
  <p>I have data logged this way:</p>
  <pre><code>(3) [{…}, {…}, {…}]
  0: {title: &quot;LittleBigPlanet PS Vita&quot;, platform: &quot;PlayStation Vita&quot;, score: 9, genre: &quot;Platformer&quot;, editors_choice: &quot;Y&quot;}
  1: {title: &quot;LittleBigPlanet PS Vita -- Marvel Super Hero Edition&quot;, platform: &quot;PlayStation Vita&quot;, score: 9, genre: &quot;Platformer&quot;, editors_choice: &quot;Y&quot;}
  2: {title: &quot;New Little King's Story&quot;, platform: &quot;PlayStation Vita&quot;, score: 5.8, genre: &quot;RPG&quot;, editors_choice: &quot;N&quot;}
  length: 3
  __proto__: Array(0)
  </code></pre>