[英]getting the value/key from a dynamic map object in immutable.js
I have a dynamic immutable object and I want to know a better way to get a deep-level value. 我有一个动态的不可变对象,我想知道一种获取深层次价值的更好方法。 Fiddle Example
小提琴的例子
var map = {aaa:{bbb:{ccc:'ddd'}}}
map = Immutable.fromJS(map)
Suppose that I don't know the third-level key ccc
, what is the best way to get its value, which in this case ddd
? 假设我不知道第三级密钥
ccc
,那么获取其值的最佳方法是什么,在本例中为ddd
?
var map = {aaa:{bbb:{ccc:'ddd'}}}
map = Immutable.fromJS(map)
map.keySeq().toList().map(first=>{
map.get(first).keySeq().toList().map(second=>{
map.getIn([first,second]).valueSeq().toList().map(third=>{
alert(third)
})
})
})
Is the above example an appropriate way to get the value ddd
. 上面的示例是获取值
ddd
的适当方法吗? I can't simply use map.getIn(['aaa','bbb','ccc'])
because this map object is dynamic in my situation 我不能简单地使用
map.getIn(['aaa','bbb','ccc'])
因为在我的情况下此地图对象是动态的
As I understand, you're trying to obtain the key which has ddd
value. 据我了解,您正在尝试获取具有
ddd
值的密钥。 If you're aware of the object nesting levels, you can simply flatten it. 如果您知道对象嵌套级别,则只需将其展平即可。
var map = {aaa:{bbb:{ccc:'ddd'},eee:{fff:'ggg'}}};
var map = map.flatten(3);
/// {
/// ccc: "ddd",
/// fff: "ggg"
/// }
Now, simply filter the map and obtain requisite key. 现在,只需过滤地图并获取必需的密钥。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.