2015-10-26 2 views
1

Je possède ce immutableJs carte:Immutablejs - Valeurs de mise à jour dans la carte et la liste imbriquée

event: { 
    days: [ 
     { 
      date: 1, 
      sessions: [ 
       { 
        id: 1, 
        name: 2, 
        startTime: 1, 
        endTime: 1, 
        description: 1, 
        detailsLink: 1, 
        details: {visible: true} 
       }, 
       { 
        id: 2, 
        name: 2, 
        startTime: 2, 
        endTime: 2, 
        description: 2, 
        detailsLink: 2, 
        details: {visible: false} 
       }, 
       { 
        id: 3, 
        name: 3, 
        startTime: 3, 
        endTime: 3, 
        description: 3, 
        detailsLink: 3, 
        details: {visible: true} 
       } 
      ] 
     }, 
     { 
      date: 2, 
      sessions: [ 
       { 
        id: 1, 
        name: 2, 
        startTime: 1, 
        endTime: 1, 
        description: 1, 
        detailsLink: 1, 
        details: {visible: false} 
       }, 
       { 
        id: 2, 
        name: 2, 
        startTime: 2, 
        endTime: 2, 
        description: 2, 
        detailsLink: 2, 
        details: {visible: false} 
       }, 
       { 
        id: 3, 
        name: 3, 
        startTime: 3, 
        endTime: 3, 
        description: 3, 
        detailsLink: 3, 
        details: {visible: true} 
       } 
      ] 
     } 
    ] 
} 

Je veux mettre à jour ceux qui sont visibles: vrai visible: false. J'ai essayé beaucoup de façons différentes avec filtre, seq, etc. Mais pas de chance.

Des idées de comment je pourrais le faire avec immutableJs?

Répondre

-1

Dans ES6, qui peut sans doute être facilement traduit en immutableJS ....

const notVisibleEvents = { 
    ...events, 
    days: events.days.map(d => { 
     return { 
      ...d, 
      sessions: d.sessions.map(s => { 
       return { 
        ...s, 
        details: { 
         ...s.details, 
         visible: false 
        } 
       }; 
      }) 
     }; 
    }) 
};