title: How to update state of nested array of array of objects without mutating
body: <p>I am tryin to update the state of nested array of objects, for instance add to results[0].rooms[2] -> loop rooms -> and add to each object room.sunday.flag</p>
  
  <pre><code>array of results:
  results:  [ 
    { dates:
    { weekstart: 2018-08-26T04:00:00.000Z,
      weekend: 2018-09-02T03:59:59.000Z,
      daysofweek: [Array] },
   need: [ '103', '204', '12', '234', '34', '555', '44' ],
   backorder:
    [ '100', '102', '150', '403', '344', '12', '3434', '23', '44' ],
   _id: 5b7b139465c29145d8d69ac2,
   iscurrent: true,
   isnext: false,
   rooms: [ [Object], [Object], [Object], [Object] ],
   user: 5b61b782719613486cdda7ec,
   __v: 9 },
  
   { dates:
    { weekstart: 2018-09-02T04:00:00.000Z,
      weekend: 2018-09-09T03:59:59.000Z,
      daysofweek: [Array] },
   need: [ '12', '13', '55', '45' ],
   backorder: [ '10', '11', '112' ],
   _id: 5b83fdc500b6b6dc493e9bb8,
   iscurrent: false,
   isnext: true,     rooms: [ [Object], [Object], [Object], 
   [Object] ],
   user: 5b61b782719613486cdda7ec,
   __v: 9 } 
   ]
  </code></pre>
  
  <p>my attempt to change the state without mutating </p>
  
  <pre><code>   const resultsRooms = [ 
       ...this.state.results[0].rooms ];
          const rooms = resultsRooms.map((room, roomIndex) =&gt; 
     {
          room.sunday.flag = true;
     });
  
     const resultsUpdaye = this.results.forEach((element, index) =&gt; {
        if (index === 0) {
              elsment.rooms = rooms;
           }
     });
  
     this.setState({
              results: resultsUpdaye
     });
  </code></pre>
  
  <p>any help? what am i doin wrong </p>