2016-04-06 10 views
3

bu Immutable Listesinde birden fazla öğe kaldırma sadece Immutable ve düz JS)? Yoksa sadece lodash kullanmalı mıyım?Verilen tek atışla

return state.set('selectedTrackIds', Immutable.fromJS(_.difference(
    state.get('selectedTrackIds').toJSON(), ['foo', 'baz'] 
))); 

cevap

5

Sen istemediğiniz öğeleri kaldırmak için filter kullanabilirsiniz:

return state.set('selectedTrackIds', 
    state.get('selectedTrackIds').filter(function(x) { 
    return ['foo', 'baz'].indexOf(x) < 0; // false return value => remove from list 
    }) 
); 

Ya map birleştirin ve bazı ES6 sözdizimi:

state.map(x => x.filter(y => ['foo', 'baz'].indexOf(y) < 0)) 

(filter ve map standart JS ve Immutable doğrudan Immutable koleksiyonları ile çalışan kendi uygulamalarını sağlar)

+0

Nice! Sadece kaybolan bir şey olup olmadığını merak ettim. – ffxsam