2016-05-06 8 views
4

例えば、私は、リスト内の項目のインデックスを使用して、リストから項目を削除について見てきた例のほとんど:Reduxの減速機は、名前でリストからオブジェクトを削除するには

case REMOVE: 
    return [ 
    ...list.slice(0, action.index) 
    ...list.slice(action.index + 1) 
    ] 

しかし、リスト内の項目のインデックスにアクセスできないアクションをディスパッチする場合は、名前だけを指定します。オブジェクトのセットをフィルタリングして、nという名前のオブジェクトのみを削除するにはどうすればよいですか?

+0

配列filter機能を使用することですあなたはES6/ES7を使用していますか? – QoP

+0

はい、ES6を使用しています。 – Himmel

答えて

6

インデックスを検索するためにES6 +を使用している場合は、findIndex()メソッドを使用できます。

case REMOVE: 
    let index = list.findIndex((x) => x.name === n); 
    return [ 
    ...list.slice(0, index), 
    ...list.slice(index + 1) 
    ] 
+0

'findIndex()'をまだ実行していませんが、これは美しく機能しました。ありがとう! – Himmel

22

簡単な方法は、

case REMOVE: 
    return list.filter((item) => item.name !== n) 
関連する問題