2016-06-29 4 views
0

他の要素を下のオブジェクトのvariablesプロパティにプッシュするにはどうすればよいですか? exapleについては入れ子オブジェクトにデータをプッシュする方法

var request = { 
    "name": "Name", 
    "id": 3, 
    "rules":[ 
     { 
     "name": "Rule name", 
     "tags": [ 
      { 
      "tagId": 1, 
      "variables":[ 
       { 
       "variable": "var1", 
       "matchType": "Regex", 
       "value": ".*" 
       }, 
       { 
       "variable": "var2", 
       "matchType": "Regex", 
       "value": ".*" 
       } 
      ], 
      "condition": false, 
      }, 
      { 
      "tagId": 1, 
      "condition": false, 
      } 
     ], 
     "ruleSetId": 3, 
     } 
    ] 
    } 

、私はこれを行うことができますどのように... request Objectからvariablesプロパティに{"variable": "var3", "matchType": "Regex", "value": ".*"}を追加する必要がありますか?

for(i=0;i<duplicates.length; i++) { 
    var request = { 
    "name": duplicates[i].scope, 
    "id": 3, 
    "rules":[ 
     { 
     "name": duplicates[i].scope + " " + "OP SDR Sync", 
     "tags": [ 
      { 
      "tagId": 1, 
      "variables":[ 
       { 
       } 
      ], 
      "condition": false, 
      }, 
      { 
      "tagId": 1, 
      "condition": false, 
      } 
     ], 
     "ruleSetId": 3, 
     } 
    ] 
    } 

    request.rules[0].tags[0].variables[0].push({ 
    "variable":"var3", 
    "matchType": "Regex", 
    "value": ".*" 
    }); 
} 

答えて

3

編集:

request.rules[0].tags[0].variables.push({ 
    "variable":"var3", 
    "matchType": "Regex", 
    "value": ".*" 
}) 

request['variables']はちょうどrequestオブジェクトのルートでvariablesキーを見つけようとします。このキーは単純には定義されていませんが、オブジェクト/配列構造にネストされています。

+0

更新された質問を確認してください。「エラー:プロパティを読み取ることができません」というエラーメッセージが表示されます。 – Valip

+0

@PavelValeriuはい。 'tags'は配列なので、' request.rules [0] .tags [0] .variables'を使う必要があります。また、 'variables'はプッシュしたい配列であることに注意してください。そこで' [0] 'は使わないでください。 – str

+0

これは私に 'エラー:オブジェクト[オブジェクトオブジェクト]の関数プッシュを見つけることができません。 ' – Valip

1

このようにしてみてください。

object = {"variable": "var3", "matchType": "Regex", "value": ".*"}; 
request.rules[0].tags[0].variables.push(object); 
0

試してみてください。

request.rules[0].tags[0].variables.push({ 
    "variable":"var3", 
    "matchType": "Regex", 
    "value": ".*" 
}) 

variablestagsにあり、そしてtagsrulesにあります。

私はあなたがあなたのオブジェクトに適切に「移動」する必要が答え

0
request.rules[0].tags.variables[0].push({ 
    "variable":"var3", 
    "matchType": "Regex", 
    "value": ".*" 
}); 

あなたの配列をナビゲートする必要があります。 []内の0を置換して、配列から項目を選択します。 (0は最初のエントリ、1は2番目のエントリなど)。

0

ドット演算子(。)を使用すると、特定のオブジェクトプロパティの値を取得できます。

大括弧([])を使用して配列の要素にアクセスできます。

は今、あなたの質問への答えは:ここ

request.rules[0].tags[0].variables.push({ 
"variable": "var3", 
"matchType": "Regex", 
"value": ".*" 
}); 

[0]はあなたの配列の最初の要素を指定します。

関連する問題