title: Improve performance of searching JSON object with jQuery
body: <p>Please forgive me if this is answered on SO somewhere already.  I've searched, and it seems as though this is a fairly specific case.</p>
  
  <p>Here's an example of the JSON (NOTE: this is <strong>very</strong> stripped down - this is dynamically loaded, and currently there are 126 records):</p>
  
  <pre><code>var layout = {
  "2":[{"id":"40","attribute_id":"2","option_id":null,"design_attribute_id":"4","design_option_id":"131","width":"10","height":"10",
              "repeat":"0","top":"0","left":"0","bottom":"0","right":"0","use_right":"0","use_bottom":"0","apply_to_options":"0"},
      {"id":"41","attribute_id":"2","option_id":"115","design_attribute_id":"4","design_option_id":"131","width":"2","height":"1",
              "repeat":"0","top":"0","left":"0","bottom":"4","right":"2","use_right":"0","use_bottom":"0","apply_to_options":"0"},
      {"id":"44","attribute_id":"2","option_id":"118","design_attribute_id":"4","design_option_id":"131","width":"10","height":"10",
              "repeat":"0","top":"0","left":"0","bottom":"0","right":"0","use_right":"0","use_bottom":"0","apply_to_options":"0"}],
  "5":[{"id":"326","attribute_id":"5","option_id":null,"design_attribute_id":"4","design_option_id":"154","width":"5","height":"5",
              "repeat":"0","top":"0","left":"0","bottom":"0","right":"0","use_right":"0","use_bottom":"0","apply_to_options":"0"}]
  };
  </code></pre>
  
  <p>I need to match the right combination of values.  Here's the function I currently use:</p>
  
  <pre><code>function drawOption(attid, optid) {
      var attlayout = layout[attid];
      $.each(attlayout, function(k, v) {
          // d_opt_id and d_opt_id are global scoped variable set elsewhere
          if (v.design_attribute_id == d_att_id
              &amp;&amp; v.design_option_id == d_opt_id  
              &amp;&amp; v.attribute_id == attid 
              &amp;&amp; ((v.apply_to_options == 1 || (v.option_id === optid)))) {
                  // Do stuff here
          }
      });
  }
  </code></pre>
  
  <p>The issue is that I might iterate through 10-15 layouts (unique attid's), and any given layout (attid) might have as many as 50 possibilities, which means that this loop is being run A LOT.</p>
  
  <p>Given the multiple criteria that have to be matched, would an AJAX call work better? (This JSON is dynamically created via PHP, so I could craft a PHP function that could possibly do this more efficently),
  or am I completely missing something about how to find items in a JSON object?</p>
  
  <p>As always, any suggestions for improving the code are welcome!</p>
  
  <p><strong>EDIT:</strong><br>
  I apologize for not making this clear, but the purpose of this question is to find a way to improve the performance.  The page has a lot of javascript, and this is a location where I know that performance is lower than it could be.</p>