2016-08-15 14 views
0

私は動的不変オブジェクトを持っています。深いレベルの値を取得するためのより良い方法を知りたいと思います。 Fiddle Exampleimmutable.jsの動的マップオブジェクトから値/キーを取得する

var map = {aaa:{bbb:{ccc:'ddd'}}} 
map = Immutable.fromJS(map) 

私は第3レベルキー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を取得する適切な方法ですか。

+0

あなたはまだ 'map.getIn(['aaa'、 'bbb'])'を使用して、そのオブジェクトのちょうど上を反復することができます。 –

答えて

1

私が理解しているように、dddという値を持つキーを取得しようとしています。オブジェクトのネストレベルを認識している場合は、単純にフラットにすることができます。

var map = {aaa:{bbb:{ccc:'ddd'},eee:{fff:'ggg'}}}; 
var map = map.flatten(3); 
/// { 
/// ccc: "ddd", 
/// fff: "ggg" 
/// } 

ここで、マップをフィルタリングし、必要なキーを取得するだけです。

関連する問題