不可变js修改所有嵌套记录

immutable js modify ALL nested records

我正在尝试修改 OrderedMap 的所有记录的 'completed' 属性。这是 OrderedMap:

const TodoItem = Record({text: '', completed: false});
let state = OrderedMap({'0': new TodoItem({text: 'First Item'})});

我当前的代码是:

state.forEach((v,k) => {
  state = state.updateIn([k.toString(),'completed'], completed => true);
});
return state;

这有效,但如何?

它是否有效,因为状态是不可变的,并且在第一次迭代后 forEach 在第一个状态 obj 上运行,现在是匿名的?

是否还有其他 'better' 修改所有嵌套元素属性的可能性?

有 -

state = state.map((todoItem)=>todoItem.set("completed", true));