2016-10-07 6 views
-1

https://jsfiddle.net/adamchenwei/Lyg2jy61/7/あなたはlodashでネストされたオブジェクトを持つオブジェクトからvar名を取得できますか?

解決バージョン:親のトップレベルのためのいくつかの理由についてはfindKey https://jsfiddle.net/adamchenwei/Lyg2jy61/10/

undefined 私の目的はlodashと= 'がmyName' の結果を得ることですです。

var obj = { 
 
    \t myName: { 
 
     \t Adam: 'Man', 
 
     }, 
 
     herName: { 
 
     \t Eve: 'Woman', 
 
     }, 
 
    }; 
 
    
 
    var result = _.findKey(obj, '0'); //as you can see somehow its undefined! 
 
    
 
    var result2 = _.findKey(obj.myName, '0'); 
 
    
 
    console.log(result);//objective is to get the result = 'myName' with lodash; 
 
    
 
    console.log(result2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.4/lodash.min.js"></script>

+1

何があなたが 'undefined'を得ないと思うのですか? [これは 'findKey'の動作方法ではありません。](https://lodash.com/docs/4.16.4#findKey) –

+0

@MikeC' result2'の結果を確認 – Ezeewei

+0

そのコードで実際に何を得ることが期待されましたか? – vlaz

答えて

2

あなたが実際にやっているように見えるのは、オブジェクトの最初のキーを取得することです。オブジェクトのキーを取得するには、_.keysを使用できます。その後、最初のものを取得します。

var obj = { 
 
    myName: { 
 
    Adam: 'Man', 
 
    }, 
 
    herName: { 
 
    Eve: 'Woman', 
 
    }, 
 
}; 
 

 
console.log(_.keys(obj)[0]); 
 

 
// Or if you want to do it exclusively with lodash functions 
 
console.log(_.first(_.keys(obj))); 
 

 
// or 
 
console.log(_.head(_.keys(obj)));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.4/lodash.min.js"></script>

1

それはあなたが正確に後にしている何明確ではないですが、あなたが投稿したオブジェクトに_.findKeyを使用すると、このように動作します:

https://jsfiddle.net/Lyg2jy61/8/

var obj = { 
    myName: { 
     Adam: 'Man', 
    }, 
    herName: { 
     Eve: 'Woman', 
    } 
}; 

console.log(_.findKey(obj, function(o) { return !!o.Adam; })); 

の場合最初のキーを欲しいだけです:_.keys(obj)[0]

関連する問題