2016-06-12 5 views
0

を働いていない「検索」Underscorejs _.findの呼び出しは、その下のループの回避策とまったく同じことをしますが、ループは常にに親ノードを検出しません。一方、forループは常に行います。予想通り、私は隣接リストを構成するデータベースの行の配列からツリーを構築するために、nodejsアプリで、次のコードを使用

// var rootItems = _.filter(flatTree, function (node) { 
//  //node.ParentId === null; 
//  node.NoParent === 1; 
// }) 
var rootItems = []; 
for (var i = 0; i < flatTree.length; i++){ 
    if (flatTree[i].ParentId == null){ 
     rootItems.push(flatTree[i]); 
    } 
} 

私はunderscore-nodeパッケージを使用していますが、定期的なunderscoreパッケージと同じ結果を試み、持っていた:代替ループがないながら

同様に、_.filterへの呼び出しは、単に、いずれかの動作しません。 。

答えて

3

ちょうどreturnが見つかりませんでした。あなたのコードは何もで

var parent = _.find(flatTree, function(p) { 
    return p.Id == row.ParentId; // Return true if the ID matches 
    ^^^^^^ <-- This 
}); 

返され、parentは、任意のデータは含まれませんデフォルトundefinedによってので、返されます。

+0

はい、ありがとうございます。私は、質問をした直後に、矢印関数の構文から私の心の中に戻ってきたので、戻りは必要ないと分かった。私はあまりにもC#LINQに慣れています。しかし、私は多分他人を助けるために質問を開いたままにし、誰かに答えるチャンスを与えました。 – ProfK

関連する問題