不可变 JS:在对象中的数组中的对象中设置 属性

Immutable JS: Set property in object within array within object

假设我有这样一个对象:

const document = {
  items: [
    { notes: ['a', 'b'] },
    { notes: ['y', 'z'] },
  ]
}

我想使用 Immutable JS 在项目上设置注释数组。基本上做一个 unshift,但不可变。

这是我正在尝试的:

const immutableDocument = Immutable.fromJs(document);
immutableDocument.setIn(['items[index]', 'notes'], [newNote, ...oldNotes]);

它不起作用,而且我在文档中没有看到任何有关通过不可变对象中的特定索引(或谓词)访问数组的内容。

我该如何完成?

更新: 基于,我也尝试了immutableDocument.setIn(['items', index, 'notes'], [newNote, ...oldNotes]),但似乎也不行。

这有效:

const newDocument = Immutable.setIn(immutableDocument, ['items', index, 'notes'], [newNote, ...oldNotes]);

不完全确定为什么另一个不起作用 based on the docs,但是嘿,我要继续前进了。