2016-05-13 120 views
0

我有以下数据对象的Javascript - 访问对象

var data = { 
    labels: ["2013", "2014", "2015", "2016"], 
    datasets: [ 
    { 
     label: "Label 1", 
     data: data1, 
    }, 
    { 
     label: "Label 2", 
     data: data2, 
    } 
    ] 
}; 

我想要得到的第二个标签“标记2”。

我曾尝试使用

console.log(data.datasets[0].label); // Only returns Label 1 
console.log(data.datasets[0][1].label); // Doesn't work 

我不希望因为我使用它与chart.js之绘制图表在结构上作出改变。

在此先感谢。

+2

'console.log(data.datasets [1] .label);'..? – George

回答

3

您可以像这样访问:

console.log(data.datasets[1].label); 

例子:https://jsfiddle.net/55ex0p80/

让我们将它分解为四个步骤:

data.datasets[ 1 ].label 
| |   | | 
1 2   3 4 
| |   | \- The field "label" of the object 
| |   \---- The desired key of the array called "datasets" 
| \-------------- The array called "datasets" 
\------------------- The data object 

这样你在标签结束您正在寻找的领域:

var data = {    <---- step 1 
    labels: ["2013", "2014", "2015", "2016"], 
    datasets: [   <---- step 2 
    { 
     label: "Label 1", 
     data: data1, 
    }, 
    {     <---- step 3 
     label: "Label 2", <---- step 4 
     data: data2, 
    } 
    ] 
}; 
1
  • data = {}是一个对象
  • labels =["2013","2014",...]是一个字符串数组
  • datasets = [{},{},{}]是对象

的阵列因此用于访问'Label 2'需要访问的数据集阵列的第二对象,然后访问其标签为:data.datasets[1].label