Immutable.Seq
seqの例
中間保存みたいな感じ
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.js"></script>
Babel + JSX
class Task extends Immutable.Record({
task: null,
done: false
}) {}
class Tasks extends Immutable.Record({
items: Immutable.Set()
}) {
get __doneTasks() {
return Immutable.List(this.items).filter(v => v.done);
}
getDoneTaskFirst() {
return this.__doneTasks.first();
}
getDoneTaskLast() {
return this.__doneTasks.last();
}
}
let tasks = new Tasks();
(tasksData => {
tasksData.forEach(data => {
const task = new Task(data);
const nextItems = tasks.items.add(task);
tasks = tasks.set('items', nextItems);
});
})([{
task: 'foo',
test: 'aaaa',
done: true
}, {
task: 'bar'
}, {
done: true
}, ]);
console.log(tasks.toJS());
console.log(tasks.getDoneTaskFirst().toJS());
console.log(tasks.getDoneTaskLast().toJS());