-1

セクション オブジェクトにはCategoryId、外部キーのような - があります。ここで、各セクションを一致するカテゴリ オブジェクトにコピーしたいと思います。

ソース:

var sections = [{title:"FirstSection", CategoryId : 1},
                {title:"SecondSection", CategoryId : 1}, 
                {title:"ThirdSection", CategoryId : 2}];
var categories = [{title:"Cat1", Id : 1},
                 {title:"Cat2", Id : 2}];

結果は次のようになります。

categories = [{title:"Cat1", 
               Id : 1, 
               sections : [{title:"FirstSection", CategoryId : 1},
                           {title:"SecondSection", CategoryId : 1}]
              },
              {title:"Cat2", 
               Id : 1, 
               sections: [{title:"ThirdSection", CategoryId : 2}]
              }];

のすべてのセクションCategoryId = 1は、Id = 1 のカテゴリのセクション配列に含まれるようになりました。

間違ったキーワードを検索しているのかもしれませんが、これに対する解決策が見つかりません。

4

2 に答える 2

1

このような場合、アンダースコア ライブラリを使用します (これはすべて手動で行うことができます)。

http://underscorejs.org/#findWhere

カテゴリ配列をループすると、次のようなことが簡単にできます。

_.findWhere(sections, {categoryId: 1});  

さらにアンダースコアを使用すると、次のことができます。

var combined = _.groupBy(categories, function(cat){ 
    cat.sections = _.findWhere(sections, {CategoryId: cat.Id});
    return cat;
 });

そして組み合わせると、あなたが探しているものが得られます。

デモ: http://jsfiddle.net/lucuma/kjkkV/1/

于 2013-04-06T20:35:29.920 に答える