2016-10-23 4 views
0

コレクションがあり、Lodash _.findメソッドを使用して、タイトルが「開発」に一致するオブジェクトを返したいとします。なぜLodash _.findメソッドが未定義に戻っていますか?

だから、私は私が欲しかったものを返します期待していた次のコードを持っている:

// Define rooms 
var rooms = [ 
    { title: 'Just For Fun', created: '2016-10-23T16:57:03.288Z', id: 2 }, 
    { title: 'Development', created: '2016-10-23T16:57:03.294Z', id: 6 } 
]; 
// Load lodash module 
var _ = require('lodash'); 
// Expected object for development? 
console.log(_.find(rooms, {'id': 6})); 

はしかし、私が戻ってコンソールで取得することは、単にundefinedです。 documentationは、以下の例があります。

var users = [ 
    { 'user': 'barney', 'age': 36, 'active': true }, 
    { 'user': 'fred', 'age': 40, 'active': false }, 
    { 'user': 'pebbles', 'age': 1, 'active': true } 
]; 
// The `_.matches` iteratee shorthand. 
_.find(users, { 'age': 1, 'active': true }); 
// => object for 'pebbles' 

そこで彼らはpebblesを取得するが、私はundefinedを取得しますか?私がここで間違っている場所を誰かが示すことができますか?前もって感謝します!

私はノードを使用しています。

+0

(1)コードを1つのコードブロックに表示できますか? '_.find'を実行する前に' room'を定義しましたか? (2)どうやってロダッシュをインストールしましたか? (3)どのバージョンのNodeを実行していますか? – trincot

+0

@trincot何を得ているのか分かりますが、console.log()の前に部屋を定義していました。私の質問を更新しました。 –

+1

もちろん、 'console.log'自体はundefinedを返してコンソールに出力されることは知っています。上の行は、見つかった要素でなければなりません。通常、スクリーンショットは悪い考えですが、この場合は便利です。 –

答えて

0

効果があります。 console.logはあなたを混乱させる可能性があります:

var rooms = [ 
    { title: 'Just For Fun', created: '2016-10-23T16:57:03.288Z', id: 2 }, 
    { title: 'Development', created: '2016-10-23T16:57:03.294Z', id: 6 } 
]; 
var room = _.find(rooms, {'id': 6}); 
console.log(room); // Object {title: "Development", created: "2016-10-23T16:57:03.294Z", id: 6} 
+1

これは動作します、ありがとう:) –

+1

@CraigvanTonder、それはあなたが他の同等の答えのための "未定義"を与えると言っているが、なぜこの答えのために "それは動作する"と言うのですか?そしてこれはあなたが試したコードとどのように違うのですか? – trincot

+0

@trincot私は専門家ではありませんが、単純に言えば、Lodashメソッドをログに記録すると結果は未定義ですが、Loadashメソッドの結果として変数を定義すると、コンソールログに変数が定義されていて、意図されました。あなたは私にこれを説明することができますか? :s –

関連する問題