 <p>Walk the array, find the relevant month, and update its value:</p> <pre><code>var newData = { "year" : 2015, "month" : "FEB", "value" : 2.33 }; for (var i = 0; i &lt; data.length; i++) { var entry = data[i]; if (entry.year == newData.year &amp;&amp; entry.month == newData.month) entry.value = newData.value; } </code></pre> <p>Your structure is not ideal for this kind of update, however. If you had 10.000 entries, you may need to examine all of them to update a single one.</p> <p>You should instead organize data by year and month. For example:</p> <pre><code>var data = { '2015-FEB': 2.5 '2015-MAR': 3.8 }; </code></pre> <p>Updating this other structure is a single operation:</p> <pre><code>data[year + '-' + month] = value; </code></pre> <p>If you need your objects in the form you posted, you can have the best of both worlds:</p> <pre><code>var data = { '2015-FEB': { "year" : 2015, "month" : "FEB", "value" : 2.33 } }; </code></pre> <p>If you need them in sorted order, you can have <strong>both</strong> structures: the date-to-object map <strong>and</strong> the array, storing references to the same objects.</p>