title: knockout.mapping.js, Is it possible to update only a part of mapped variable?
body: <p>In my JS I have the following ajax call, that bind the resulting json using knockout mapping plugin.</p>
  
  <pre><code>$.getJSON("/Game/GetRack", function (data) {
      game.rack = ko.mapping.fromJS(data);
      ko.applyBindings(game.rack, $('.rack')[0]);
  });
  </code></pre>
  
  <p><code>/Get/GetRack</code> returns:  </p>
  
  <p><code>[{"Color":3,"Letter":"a","Points":5},null,null]</code>  </p>
  
  <p>As you can see, there is only one object in the array. The other two are nulls.</p>
  
  <p>Now using knockout mapping I can do:</p>
  
  <pre><code>ko.mapping.fromJS([null, { Color: 55, Letter: "b", Points: 88 }, null], game.rack);
  </code></pre>
  
  <p>Doing so correctly updates my view and now I see only a letter B on a second position. The other two are nulls.</p>
  
  <p>My questions is: Can I update a value at a particular position without using mapping.fromJS?</p>
  
  <p>So assuming I have a letter A at index 0, I want to change the second null to<br>
  <code>{ Color: 55, Letter: "b", Points: 88 }</code><br>
  and make my UI automatically update to resemble this change. How can this be done?     </p>
  
  <hr>
  
  <p>Edit:  </p>
  
  <p>I decided to go with the example given by John Earles. Unfortunately I still have a problem, because my array is two dimenstional.</p>
  
  <p>You have a sample here:
  <a href="http://jsfiddle.net/wgZ59/29/" rel="nofollow">http://jsfiddle.net/wgZ59/29/</a><br>
  (it's very similar to John Earles' example, but includes two dimensional array).  </p>
  
  <p>Can someone point out why clicking on change button does not change the values of elements? Is it also possible to change their values without calling HasMutated()?</p>
  
  <p>And the last one (only if the previous two are solved). Is it possible to create html table statically (because e.g. I know that it will always be 3x3, so I want two print table with 3 rows and 3 columns and then bind each individual cell to my matrix cells. I tried that already and I had problems, because knockout didn't have the values for the cells...</p>
  
  <hr>
  
  <p>EDIT2:  </p>
  
  <p>I managed to answer my above questions myself, fiddle example is here:</p>
  
  <p><a href="http://jsfiddle.net/wgZ59/44/" rel="nofollow">http://jsfiddle.net/wgZ59/44/</a></p>
  
  <p>So, I can make a static table and bind individual cells, when I declare the array this way:  </p>
  
  <p><code>self.matrix = ko.observableArray([[0,0,0],[0,0,0],[0,0,0]]);</code> </p>
  
  <p>or   </p>
  
  <p><code>self.matrix = ko.observableArray([[,,],[,,],[,,]]);</code>. </p>
  
  <p>I can update the values and it works for a static table, but it does not work for a dynamic table (created dynamically by knockout). You can see the behavior on the fiddle page (link at the beginning of this edit). Do you know why pressing "change" button does not update the values in a dynamically created table?</p>