Javascript 获取Immutable.js中的嵌套值
根据这里的文件: 我应该能够通过为Javascript 获取Immutable.js中的嵌套值,javascript,immutable.js,Javascript,Immutable.js,根据这里的文件: 我应该能够通过为keyPath参数提供一个数组来获得深度嵌套的值。这就是我所做的,但是我得到了undefined作为返回值 我做错了什么?映射只是一组带有值的键。您拥有的是一个带有键categories和值{1:a',2:b'}的映射。该值不会因为放置在另一个映射中而自动成为不可变映射 现在,getIn()函数将只“查看”其他Immutable.js映射。这里有一个普通的ol'javascript对象。如果您只想获得1值,可以执行以下操作: var obj=Immutabl
keyPath
参数提供一个数组来获得深度嵌套的值。这就是我所做的,但是我得到了undefined
作为返回值
我做错了什么?映射只是一组带有值的键。您拥有的是一个带有键
categories
和值{1:a',2:b'}
的映射。该值不会因为放置在另一个映射中而自动成为不可变映射
现在,getIn()
函数将只“查看”其他Immutable.js映射。这里有一个普通的ol'javascript对象。如果您只想获得1
值,可以执行以下操作:
var obj=Immutable.Map({categories:{1:a',2:b'});
var output=obj.getIn([“categories”])[1];
警报(输出)代码>
您的代码有两个问题:
Immutable.Map(…)
不会遍历参数来创建复杂的不可变。为此,您需要不可变的.fromJS(…)
一旦这样做,您需要在getIn(…)
中使用字符串,因此['categories',1']
而不是['categories',1]
请参阅。谢谢您提出这个问题,为什么getIn
的文档似乎消失了?该方法是否已被弃用?抱歉,显然它是继承的:现在代码段可以工作了。不可变库以前没有链接过。“现在,getIn()函数将只“看到”其他Immutable.js映射。这里有一个普通的ol'javascript对象…”我在引用的文档中发布了一个与此相关的问题,似乎表明getIn也支持普通对象?
var obj = Immutable.Map({categories: {1: 'a', 2: 'b'}});
var output = obj.getIn(['categories', 1]);
alert(output);