JavaScript 没有多维数组。此外,它的数组从 0 开始索引,而不是 1。并且您的第一条语句中的 new 不属于那里。
所以不要这样:
new var content = [[]];
content[1,1]= "something for Jan 1";
content[1,2]= "something for Jan 2";
你可以使用这个:
var content = [ [], [] ];
content[1][1] = "something for Jan 1";
content[1][2] = "something for Jan 2";
或者类似的东西。
您应该阅读 JavaScript 数组语法。听起来您正在尝试一些事情,但并不真正知道该语言中什么是有效的。像这样进行实验固然很好,但如果您知道什么样的实验可能会成功,那就更好了。
奇怪的是,即使这样的声明并没有达到你想要的效果:
array[ 1, 2 ] = 'foo';
它是有效的JavaScript。它有什么作用?嗯,JavaScript 有一个逗号运算符,它计算逗号两边的表达式并返回右边表达式的值。所以这个表达式:
1, 2
值为 2。换句话说,array[1,2] 忽略了1,实际上与array[2] 相同,即它返回数组的第三个元素。
您可以像这样在 JavaScript 控制台中进行测试:
var a = [ [10,20], [30,40] ];
console.log( a[1,1] );
这将打印:
[30, 40]
更新:
这是您在评论中链接到的代码的摘录:
var content = [ [], [] ];
content[1][1]= "placeholder.";
content[1][2]= "placeholder.";
// ...
content[1][30]= "placeholder.";
content[1][31]= "placeholder.";
content[2][1]= "placeholder.";
content[2][2]= "placeholder.";
// ...
content[2][30]= "placeholder.";
content[2][31]= "placeholder.";
content[3][1]= "placeholder.";
content[3][2]= "placeholder.";
// ...
让我们来谈谈这段代码的真正作用。首先,这一行:
var content = [ [], [] ];
这将创建一个包含两个元素的数组,其中每个元素本身都是一个空数组。由于 JavaScript 从 0 开始索引数组,因此这两个元素是 content[0] 和 content[1]。没有content[2]、content[3]等。那些都不存在。
然后你执行这个语句:
content[1][1]= "placeholder.";
现在content 包含:
[ [], [ null, "placeholder." ] ];
不是你想要的,是吗?
当你得到这个声明时:
content[2][1]= "placeholder.";
你会得到一个 JavaScript 错误:
TypeError: Cannot set property '1' of undefined
那是因为如上所述,content[2] 不存在。
看,正如我所说,您需要学习基本的 JavaScript 概念,例如数组如何工作的细节。有很多很好的教程和参考资料。
还可以学习如何使用 JavaScript 调试器,这样您就可以看到类似上面的错误,从而可以交互式地试验代码。
现在回到你想要做的事情。你想为一年中的每个月设置一个数组,每个月的每一天都有一些东西吗?要初始化数组,我只需使用一个数组字面量即可。
如果您不介意从零开始索引,请使用:
var content = [
[
"January First",
"January Second",
...
],
[
"February First",
"February Second",
...
],
...
];
那么content[0][0] 就是"January First",content[1][1] 就是"February Second",等等
如果您想对月份和日期使用从 1 开始的索引,您可以这样做:
var content = [
null,
[
null,
"January First",
"January Second",
...
],
[
null,
"February First",
"February Second",
...
],
...
];
现在content[1][1] 是"January First",content[2][2] 是"February Second",等等。