2016-04-19 5 views
0

こんにちは、私はImmutableJsを初めて使っています。私はImmutableJs配列内の特定のオブジェクトを更新したい。ここでImmutableJSを使ってJS内のオブジェクトを更新するには?

私の配列

const todos = Immutable.fromJS([{ 
       text: 'ADDED TODO', 
       id: 0, 
       todo:[] 
      }, 
      { 
       text: 'DELETED TODO', 
       id: 1, 
       todo:[] 
      }, 
      { 
       text: 'DELETED TODO', 
       id: 1, 
       todo:[] 
      }]); 

ある今、私はidがTODO空の配列内の1である第二の目的でオブジェクトをプッシュします。

誰もそれを行う方法を提案できますか?あなたのリストはidによって注文された場合

答えて

1

、あなただけのこの操作を行うことができます。

const newTodos = todos.update(
    1, 
    map => map.update(
     "todo", 
     list => list.push("item") 
    ) 
); 

まずupdateは、対応するインデックスとMapを見つけ、機能に適用します。 2番目のupdateは似ていますが、todoでキーを見つけて別の機能に適用します。次に、あなたのtodoのリストにアイテムを押し込むだけで完了です。

idがこのインデックスに対応しているのではない場合は、1findIndexに置き換えてください。

todos.findIndex(todo => todo.get("id") === 1), 
関連する問題