2017-06-14 5 views
0

ID、名前、および親IDを持つオブジェクトの配列があります。私は基本的に選択ボックスに親IDに基づいて階層を実装しようとしています。オブジェクトの私の配列は、私は、出力が順番javascriptまたはjqueryを使用して親に基づいてソートする

Category 1 
- Sub Category 1 
    -Sub Sub Category 
    -Sub Sub Sub Category 
    -Sub Sub Sub Sub Category 
Category 2 
- Sub Category 2 

になりたいこの

var data = [ 
{ID: 1, Name: "Category 1", ParentId: null}, 
{ID: 2, Name: "Category 2", ParentId: null}, 
{ID: 3, Name: "Sub Category 1", ParentId: 1}, 
{ID: 4, Name: "Sub Category 2", ParentId: 1}, 
{ID: 5, Name: "Sub Sub Category", ParentId: 3}, 
{ID: 6, Name: "Sub Sub Sub Category", ParentId: 5}, 
{ID: 7, Name: "Sub Sub Sub Sub Category", ParentId: 6} 
]; 

ようなもので、私はこれを達成することができますする方法はありますか?私を助けてください。前もって感謝します。

+0

あなたの 'data'は、あなたが'出力として期待するものを表示します。 – birdspider

+0

これは遅くなるでしょう(n^2)。あなたが["left"と "right"の値を持っていればより速くなりました(http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/)。エントリを再帰的にグループ化する必要があります。 – mpen

+0

@Darshan私は、birdspiderがJSONの出力がどのように見えるかをあなたに見せたいと思っています。あなたは私たちにメモリ内表現でもHTML表現でもないテキストを与えました。 – mpen

答えて

0

任意のパラメータを指定して、javascript内のオブジェクトの配列を並べ替えることができます。 this answer from a previous questionをご覧ください。あなたの特定のケースでは、昇順を与えるParentIdプロパティです。

+0

正確ではありません。親のIDをソートすると、カテゴリ1、カテゴリ2、サブカテゴリ1、サブカテゴリ2、...などが表示されます。これは、OPが望む順序ではありません – mhodges

+0

はい、これは並べ替えを行います。親IDに基づいて – Darshan

関連する問題