我有一个动态不可变对象(immutable对象),我想知道一种更好的方法来获取深层值。 Fiddle Example
var map = {aaa:{bbb:{ccc:'ddd'}}}
map = Immutable.fromJS(map)
假设我不知道第三级 key 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)
})
})
})
上面的示例是获取值ddd
的适当方法吗?我不能简单地使用 map.getIn(['aaa','bbb','ccc'])
因为这个 map 对象在我的情况下是动态的
最佳答案
据我了解,您正在尝试获取具有 ddd
值的 key 。如果您了解对象嵌套级别,则可以简单地将其展平。
var map = {aaa:{bbb:{ccc:'ddd'},eee:{fff:'ggg'}}};
var map = map.flatten(3);
/// {
/// ccc: "ddd",
/// fff: "ggg"
/// }
现在,只需过滤 map 并获取必要的 key 即可。
关于javascript - 从 immutable.js 中的动态映射对象获取值/键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38959753/