2016-03-21 21 views
0

jsonのフィールドを更新したいとします。上記オブジェクトフィールドを検索し、my変数javascriptを使用して更新する方法

{ 
    "rows": [{ 
     "title": " row 1", 
     "panels": [{ 
      "targets": [{ 
       "selectedCIID": "5856742957ce424b8db6cfb309b6b013", 
       "series": "" 
      }] 
     }] 
    }, { 
     "title": "row 2", 
     "panels": [{ 
      "targets": [{ 
       "selectedCIID": "5856742957ce424b8db6cfb309b6b013", 
       "series": "" 
      }] 
     }, { 
      "targets": [{ 
       "selectedCIID": "5856742957ce424b8db6cfb309b6b013", 
       "series": "" 
      }] 
     }] 
    }] 
} 

コード: 私のフィールドは、JSON

rows-> panels->標的 - > selectedCIId、

var dashboard = results.dashboard; 
    var dashboardJson = angular.fromJson(dashboard); 
    //dashboardJson.rows //dashboardJson.rows[0].panels 
    var j; 
    for(i=0; i<=dashboardJson.rows; i++){ 
    for(j=0;) 
    dashboardJson.rows[i].panels 
    dashboardJson.rows[0].panels[0].targets[0].selectedCIID = ci; 
    //dashboardJson.rows[0].panels[0].targets[0].selectedCIID 
    } 

、このフィールドは、いくつかの階層を持ついくつかのオブジェクトの内部にある、selectedCIIDです私のアプローチを示すためのダミーコードです。 これはネイティブJSコードを使用して行うことができます。 forループ。

しかし、このオブジェクトを繰り返し処理するためにlodashを使用できれば、それは問題ありません。

それとも

は、どのように私は、このフィールドは、私の変数で更新来ているところはどこでもパネル内selectedCIIDを見つけるためにコードを書くことができます。

"selectedCIID"フィールドを更新します。 助けてください。

+0

をいくつかifステートメントを追加することができますそれはちょうど状態に問題大丈夫です( 'I <= dashboardJson.rows')'平等を削除= '0から始まっているので、この条件からチェックしてください。 – itzmukeshy7

+0

はい。わかった。これはちょうどそして例です...あなたは私と同じ方法をロダシュで行うことを提案できますか? –

+0

これを試してみよう[LodashでJavaScriptオブジェクトのプロパティをループ](http://stackoverflow.com/questions/21310946/loop-through-properties- – itzmukeshy7

答えて

0

すべてのプロパティを変更したい場合は、targetsを複数回ループすることができます。あなたがpanelsrows希望をフィルタリングしたい場合には

var rowI, panelI, targetI, 
    rows, panels, targets, target; 

rows = dashboardJson.rows; 
for (rowI = 0; rowI < rows.length; rowI++) { 
    panels = rows[rowI].panels; 

    for (panelI = 0; panelI < panels.length; panelI++) { 
     targets = panels[panelI].targets; 

     for (targetI = 0; targetI < targets.length; targetI++) { 
      target = targets[targetI]; 
      target.selectedCIID = ci; 
     } 
    } 
} 

あなたはまた、targets

関連する問題