title: ngDoCheck not firing for an object with array of items
body: <p>I am listening to changes on an object property with help of ngDoCheck The implementation is like below</p>
  <pre><code>differ: any;
  pageSettings:SelectionSettings; 
  </code></pre>
  <p>where SelectionSettings is</p>
  <pre><code>export interface SelectionSettings {
    boolPpt: boolean;
    maxRows: number;
    startIndex:number;
    valuesToSelect: Colum[];  
  }
  </code></pre>
  <p>The property valuesToSelect is an array of items and is dynamic in nature. [ Items can be added to removed from the list as well as items can be updated ]</p>
  <p>ngDoCheck  initialization is like below</p>
  <pre><code>  constructor(  private differs: KeyValueDiffers) {
      this.differ = differs.find({}).create();  
      this.initializeSettings();
    }
  
  
    ngDoCheck() {
      var changes = this.differ.diff(this.pageSettings);
      if (changes) {
        console.log('changes detected');
        changes.forEachChangedItem(r =&gt; console.log('changed ', r.currentValue));
        changes.forEachAddedItem(r =&gt; console.log('added ' + r.currentValue));
        changes.forEachRemovedItem(r =&gt; console.log('removed ' + r.currentValue));
      } else {
        console.log('nothing changed');
      }
    }
    
  
  
  initializeSettings() {
  
  this.pageSettings = {
    boolPpt: false,
    maxRows: 100,
    startIndex: -1,      
    valuesToSelect: [
      {
        name: &quot;sadsa&quot;,
        index: -1,
        type: &quot;string&quot;,
        bgcolor:&quot;#0000CD&quot;
      },
      {
       name: &quot;xxzc&quot;,
        index: -1,
        type: &quot;string&quot;,
        bgcolor:&quot;#1000CD&quot;
      }        
    ]
  } 
  </code></pre>
  <p>}</p>
  <p>The updation of pageSettings occured at different places inside component, like on click event of a table cell or checkbox change event etc</p>
  <p>This is firing for all changes of properties except array  valuesToSelect . Whenever I am adding new items or remove items of the property SelectionSettings.valuesToSelect  , the changes are getting detected.But if we make an updation of already existing item inside  SelectionSettings.valuesToSelect  , ngDoCheck is not detecting any changes.</p>
  <p>How can i detect or listen to changes of all properties of SelectionSettings along with child array properties</p>