title: Using array.filter down multiple levels
body: <p>I have a filter function, which uses <code>filter</code> to quickly search a text in an array:</p>
  
  <pre><code>filtered = filtered.filter((row) =&gt; {
     return Object.keys(row).some((key) =&gt; {
          return String(row[key]).toLowerCase().indexOf(this.quickSearch.toLowerCase()) &gt; -1
        })
     })
  </code></pre>
  
  <p>This works great for single level array, but not sure how to adapt it to work down unknown number of levels of array of objects like this</p>
  
  <pre><code>{
     'name': 'james',
     'post': {
          'name': 'my favorite teams'
      }
  }
  </code></pre>
  
  <p>The code above finds <code>james</code>, no problem, but it will not find <code>teams</code> as its not going deep enough.</p>
  
  <p>Naturally I don't want to hardcode something like <code>if row[key] == 'post'</code>, because I'm using this code for multiple data sources and need it to be dynamic.</p>
  
  <p>How do I adapt this to work in multi level arrays like the example above?</p>