Javascript 如何在Immutable.js中读取数组中的值

Javascript 如何在Immutable.js中读取数组中的值,javascript,arrays,object,dictionary,immutable.js,Javascript,Arrays,Object,Dictionary,Immutable.js,我对此有点困惑,似乎无法解决这个问题 假设我有这个: const AnObj = Immutable.Map({ a : "a", b : Immutable.List.of( a, b, c, Immutable.Map({ a : "a" }) ) }); 对于不可变映射,我们使用get()中的字符串来查找相应的属性。如何读取数组值?您可以将基于零的数字索引传递给列表。get(): 请参阅。免责声明-这适用于所有不可变类型,而不仅仅是列表 几种方法- 方法-

我对此有点困惑,似乎无法解决这个问题

假设我有这个:

const AnObj = Immutable.Map({
 a : "a",
 b : Immutable.List.of(
  a,
  b,
  c,
  Immutable.Map({
   a : "a"
  })
 )
});

对于不可变映射,我们使用
get()
中的字符串来查找相应的属性。如何读取数组值?

您可以将基于零的数字索引传递给
列表。get()


请参阅。

免责声明-这适用于所有不可变类型,而不仅仅是列表

几种方法-

  • 方法-
    AnObj.get('b')。get(3)。get('a')
    (谢谢@stas)。 当结构不是很深时,这很有用。如您所见,语法非常冗长

  • 简洁的-
    AnObj.getIn(['b',3',a'])
    我喜欢这一点,因为这种模式允许有一个通用的getter,我可以将关键路径转换到各个组件

  • 当您需要所有值而不关心索引时,veritable/-
    AnObj.get('b').valueSeq()
    当列表很大并且您希望将迭代延迟到绝对需要时,这非常有用。这是其中表现最好的

  • AnObj.get('b').get(3).get('a')