2017-01-08 19 views
-3

ここでは具体的な答えは見当たりませんでしたが、オブジェクト内のオブジェクトにアクセスして更新するにはどうすればよいでしょうか?JavaScript内のオブジェクト内のオブジェクトの値を更新する

私の例では、BJ.o[0]["todo-items"].lengthは、dataオブジェクトでは、どのようにして '33'の位置になりますか?代入演算子(=)を使用

BJ.o = o[0]["todo-items"].length; 

var data = { 
    datasets: [{ 
    data: [ 33, 9, 24, ], 
    backgroundColor: [ "#FF6384", "#4BC0C0", "#FFCE56", ], 
    label: 'My dataset' // for legend 
    }], 
    labels: [ "Overdue", "Today", "Upcoming", ] 
}; 
+0

'data.datasets [0] .data [0]' – dandavis

+0

コードスニペットをエラーなく実行できることを確認して、質問を明確にしてください。 – meno

+0

@dandavisネストされたオブジェクトにアクセスするための構文は、まさに私が必要としていたものでした。これを答えることができますか?それを正しいとマークしますか? –

答えて

1

、これはあなたのソリューションのようになります。

data.datasets [0] .dataの[0] = 50;

又は

data.datasets [0] .backgroundColor [0] = '#000000';

[0]のオブジェクトと名前だけのオブジェクトにアクセスする理由を聞かれるかもしれません。 これは、{data:...}はオブジェクトそのものであるため、そのままで直接アクセスすることができますが、[{data:...}、{data2:...}]があれば配列その子にアクセスする前に、単にインデックスを作成する必要があります。

はここにあなたのためのjsfiddleです: https://jsfiddle.net/zavpdLpo/

JS:

var data = { 
datasets: [{ 
    data: [ 
     33, 
     9, 
     24, 
      ], 
    backgroundColor: [ 
     "#FF6384", 
     "#4BC0C0", 
     "#FFCE56", 
      ], 
    label: 'My dataset' // for legend 
}], 
labels: [ 
    "Overdue", 
    "Today", 
    "Upcoming", 
    ] 
}; 

document.write(data.datasets[0].data[0]); // Prints 33 
data.datasets[0].data[0] = 50; 
document.write(data.datasets[0].data[0]); // Prints 50 

HTML:

<div id="test"></div> 

・ホープ、このことができます。

0

var data = { 
 
    datasets: [{ 
 
     data: [ 
 
      33, 
 
      9, 
 
      24, 
 
], 
 
     backgroundColor: [ 
 
      "#FF6384", 
 
      "#4BC0C0", 
 
      "#FFCE56", 
 
], 
 
     label: 'My dataset' // for legend 
 
    }], 
 
    labels: [ 
 
     "Overdue", 
 
     "Today", 
 
     "Upcoming", 
 
] 
 
}; 
 
console.log(data.datasets[0].data[0]) 
 
// data.datasets[0].data[0] = whatever you want

1
data.datasets[0].data[0]=BJ.o; 

。あなたの最初の質問に

関連する問題