2016-10-05 6 views
0

私はJavaScriptを初めて使いました。私は現在、私の温度センサーのAngular nvD3チャートをプログラミングしています。JavaScriptはオブジェクト内のオブジェクトに値を追加します

私は、次のデータ変数があります。データオブジェクト内のデータは、後に書かれたスクリプトによって自動的に追加されなければならないので、私は私がデータにアクセスして追加することができますどのように知りたい

var data = [ 
     { 
      key: 'Pt #1', 
      values: [{x: "04.10.2016", y: 14 },{x: "05.10.2016", y: 16 },{x: "06.10.2016", y: 15 },{x: "07.10.2016", y: 16 }] 
     }, 
     { 
      key: 'PT #2', 
      values: [{x: "04.10.2016", y: 39 },{x: "05.10.2016", y: 40 },{x: "06.10.2016", y: 47 },{x: "07.10.2016", y: 22 }] 
     }, 
     { 
      key: 'PT #3', 
      values: [{x: "04.10.2016", y: 22 },{x: "05.10.2016", y: 23 },{x: "06.10.2016", y: 22 },{x: "07.10.2016", y: 43 }] 
     }, 
     { 
      key: 'PT #4', 
      values: [{x: "04.10.2016", y: 25 },{x: "05.10.2016", y: 22 },{x: "06.10.2016", y: 23 },{x: "07.10.2016", y: 12 }] 
     }, 
     { 
      key: 'PT #5', 
      values: [{x: "04.10.2016", y: 17 },{x: "05.10.2016", y: 17 },{x: "06.10.2016", y: 16 },{x: "07.10.2016", y: 37 }] 
     }, 
     { 
      key: 'PT #6', 
      values: [{x: "04.10.2016", y: 24 },{x: "05.10.2016", y: 24 },{x: "06.10.2016", y: 25 },{x: "07.10.2016", y: 43 }] 
     }, 
     { 
      key: 'PT #7', 
      values: [{x: "04.10.2016", y: 11 },{x: "05.10.2016", y: 12 },{x: "06.10.2016", y: 11 },{x: "07.10.2016", y: 11 }] 
     } 
]; 

をデータ変数の中の特定のキー#。

例として、翌日とその温度を「PT#1」のキーに「08.10.2016」という値で追加し、その日の気温を他のものを削除せずに追加したいのですが、どうすればいいですか?

ありがとうございました!

+0

何か試しましたか?あなたが試したことを示す必要があります。それは、どこが間違っているのかを理解するのに役立つ最良の方法です。 –

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findとhttps://developer.mozillaのコードを書いただけではわかりません。 .com/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push –

答えて

0

あなたのarray of objectsを反復してkey対応見つけ、その後、objectの値を操作なり、以下のようなもの:以下

data.forEach(function(item) { 
    if(item.key === 'Pt #1'){ 
     item.values.forEach(function(subItem) { 
      console.log("subItem", subItem); 
      if(subItem.y == '14') { 
       subItem.x = '08.10.2016' 
      } 
     }); 
    } 
}); 

は同じのためのフィドルです:

https://jsfiddle.net/r85hkpdw/

+1

ありがとうございます –

1

'forEach'を使って配列(データ)を調べるだけで、各項目のチェック時にそのキーがあなたの後のキーと一致するかどうかを調べることができます。その場合は、その項目の '値'を押して、新しいオブジェクトをオブジェクトの配列に移動させます。

var newObj = { x: "08.10.2016", y: 34 }; 

data.forEach(item => { 
    if (item.key === 'Pt #1') item.values.push(newObj) 
}); 
+0

あなたのキーは実際には小文字の「t」の「Pt#1」です – Yinon

+0

ありがとう!チャームのように働いた –

関連する問題