Javascript 静态数组声明和初始化
我正在从头开始学习JS,并使用JS实现HighCharts代码。看到其中一个演示,我看到一个变量数据数组声明,如下所示:Javascript 静态数组声明和初始化,javascript,Javascript,我正在从头开始学习JS,并使用JS实现HighCharts代码。看到其中一个演示,我看到一个变量数据数组声明,如下所示: data = [{ y: 55.11, color: colors[0], drilldown: { name: 'MSIE versions', categories: ['MSIE 8.0', 'MSIE 6.0', 'MSIE 7.0', 'MSIE 9.0'],
data = [{
y: 55.11,
color: colors[0],
drilldown: {
name: 'MSIE versions',
categories: ['MSIE 8.0', 'MSIE 6.0', 'MSIE 7.0', 'MSIE 9.0'],
data: [{
y: 33.06,
drilldown: {
name: 'drilldown next level',
categories: ['a', 'b', 'c'],
data: [23,54,47],
color: colors[0]
}
}, 10.85, 7.35, 2.41],
color: colors[0]
}
}, {
y: 21.63,
color: colors[1],
drilldown: {
name: 'Firefox versions',
categories: ['Firefox 3.6', 'Firefox 4.0', 'Firefox 3.5', 'Firefox 3.0', 'Firefox 2.0'],
data: [13.52, 5.43, 1.58, 0.83, 0.20],
color: colors[1]
}
}];
这个“数据”数组声明是什么意思?
data
是一个包含两个对象文本的数组。每个对象文字依次包含各种属性,一些简单的属性,如y
和color
,还有一些更复杂的属性,如深入查看
,它本身就是一个具有自己属性的对象文字
在这种情况下,最好有非常清晰的格式,以便更容易地看到什么属于什么。假设您对以
data=[{
开头的data
数组感到困惑,而不是像data:[23,54,47]这样的静态数组
数据
是一个包含多个对象文字的数组,每个对象文字都有一个名为向下钻取
的属性,该属性包含另一个类似的结构,该结构可能包含另一个这样的数据
数组
它可以分解为类似以下结构:
data --> (array)
|--> object
| --> name
| --> category
| --> drilldown (object)
| --> data (array)
| |--> object
| |--> object
|--> object
--> name
--> category
--> drilldown (object)
--> data (array)
|--> object
|--> object
它是一个包含两个元素的数组,每个元素都是一个对象。这些元素在中声明。例如,第二个元素是:
{
y: 21.63,
color: colors[1],
drilldown: {
name: 'Firefox versions',
categories: ['Firefox 3.6', 'Firefox 4.0', 'Firefox 3.5', 'Firefox 3.0', 'Firefox 2.0'],
data: [13.52, 5.43, 1.58, 0.83, 0.20],
color: colors[1]
}
}
此对象由各种属性组成。例如,属性“y”的值为21.63。属性“深入”是另一个对象,依此类推。可以无限嵌入原语、数组和对象
此外,我可以推断数据[0]和数据[1]似乎是相似的对象,因为它们具有相同的属性
如果你很难看到这个结构,有一件事可能会有所帮助,那就是对你的代码风格,特别是缩进非常严格。我对它做了一点修改,并显示了一个非常大的间距。它占用了更多的行,但应该更清楚什么是相关的
data = [
{
y: 55.11,
color: colors[0],
drilldown: {
name: 'MSIE versions',
categories: ['MSIE 8.0', 'MSIE 6.0', 'MSIE 7.0', 'MSIE 9.0'],
data: [
{
y: 33.06,
drilldown: {
name: 'drilldown next level',
categories: ['a', 'b', 'c'],
data: [23,54,47],
color: colors[0]
}
},
10.85,
7.35,
2.41
],
color: colors[0]
}
},{
y: 21.63,
color: colors[1],
drilldown: {
name: 'Firefox versions',
categories: ['Firefox 3.6', 'Firefox 4.0', 'Firefox 3.5', 'Firefox 3.0', 'Firefox 2.0'],
data: [13.52, 5.43, 1.58, 0.83, 0.20],
color: colors[1]
}
}
];
数据是一个对象,它包含一些对象,每个大括号{}代表一个对象
var data=[{
a:'Hello',b:'world'},
{
x:'Hello World',
y:function(){ alert(this.x);}
}];
在上面的例子中
{a:'Hello',b:'world'} // This object contains two properties/variables a and b
是一个对象,它是数据数组的第一个(索引0)元素,并且
{
x:'Hello World' // This is a property/Variable of 2nd objec
y:function(){ alert(this.x);}, // This is a method/function of 2nd object
}
是数据数组的第二个(索引1)元素,您可以调用
alert(data[0].a); // Will alert "hello" because first (0) item/object of data array has a variable that's value is "hello"
data[1].y(); // Will alert "Hello World" because 2nd item/object of data array has a method/function that alerts it's 'x' variable's data, 'this' indicates current object.
fiddle是。它初始化一个对象数组。我们还能做什么?谢谢,这意味着我可以访问像数据[0]这样的成员。drilldown.color的值?是的。绝对可以!尝试在Firebug或google chrome开发工具中编写console.log(数据)。它将为您提供一个可探索的对象,向您准确显示结构。