1

我正在尝试以这种方式制作一个数组:

var cell = [];    
cell[0][0] = "Förnamn:";    
cell[0][1] = "Efternamn:";    
cell[0][2] = "Telefon:";    
cell[1][1] = "Leitet";    
cell[1][2] = "7716";    
cell[2][0] = "Mats";    
cell[2][1] = "Loock";    
cell[2][2] = "7714";

但我得到这个错误:

无法设置未定义的属性“0”

我也试过这个:

var cell = new array[]

并收到此消息:

意外的标记 ]

并尝试了这个:

var cell = new array()

但是得到这个错误:

数组未定义

所以我需要帮助来声明我的变量。以下工作很重要:

cell[0][0] = "Förnamn:";
cell[0][1] = "Efternamn:";
cell[0][2] = "Telefon:";
cell[1][0] = "Johan";
cell[1][1] = "Leitet";
cell[1][2] = "7716";
cell[2][0] = "Mats";
cell[2][1] = "Loock";
cell[2][2] = "7714";
4

6 回答 6

5
var a = new Array();
a[0] = new Array();

或者

var a = [[]];

适用于您的案例:

// if you want to be explicit
var cell = [] 
cell[0] = ["Förnamn:", "Efternamn:", "Telefon:"]
cell[1] = ["Johan",    "Leitet",     "7716"    ]
cell[2] = ["Mats",     "Loock",      "7714"    ]

// or
var cell = [
    ["Förnamn:", "Efternamn:", "Telefon:"],
    ["Johan", "Leitet", "7716"],
    ["Mats", "Loock", "7714"]
]
于 2012-11-18T13:29:06.070 回答
2

像这样

var array = [[]];

在 JS 中应该使用文字,而不是构造函数。

于 2012-11-18T13:30:44.630 回答
1

创建文字数组的最简单方法是

var cell=[
  [
    "Förnamn:",        
    "Efternamn:",
    "Telefon:"
  ],[
    "Johan",
    "Leitet",
    "7716"
  ],[
    "Mats",
    "Loock",
    "7714
  ]
]

然后,当你想添加另一行时,你可以做

cell.push(["John", "Dvorak", "3455"])

如果你真的想使用

cell[0][0] = "Förnamn:";    
cell[0][1] = "Efternamn:";    
cell[0][2] = "Telefon:";    
cell[1][1] = "Leitet";    
cell[1][2] = "7716";     
cell[2][0] = "Mats";    
cell[2][1] = "Loock";    
cell[2][2] = "7714";

,然后执行以下操作:

var cell=[];
cell[0]=[];
cell[1]=[];
cell[2]=[];

cell[0][0] = "Förnamn:";    
cell[0][1] = "Efternamn:";    
cell[0][2] = "Telefon:";    
cell[1][1] = "Leitet";    
cell[1][2] = "7716";     
cell[2][0] = "Mats";    
cell[2][1] = "Loock";    
cell[2][2] = "7714";

或者

var cell = [];

cell[0] = [];
cell[0][0] = "Förnamn:";    
cell[0][1] = "Efternamn:";    
cell[0][2] = "Telefon:";   
cell[1] = []; 
cell[1][1] = "Leitet";    
cell[1][2] = "7716";  
cell[2] = [];   
cell[2][0] = "Mats";    
cell[2][1] = "Loock";    
cell[2][2] = "7714";
于 2012-11-18T13:32:44.663 回答
0
var cell = [
    [
        "Förnamn:",
        "Efternamn:",
        "Telefon:"
    ],
    [
        "Leitet",
        "7716"
    ],
    [
        "Mats",
        "Loock",
        "7714"
    ]
];
于 2012-11-18T13:32:17.283 回答
0

Javascript 不像 C 那样具有二维数组。您可以通过使用数组数组来模拟它,如下所示:

var cell = [];
for (var i = 0; i < 3; i++) {
  cell[i] = [];
}


cell[0][0] = "Förnamn:";
cell[0][1] = "Efternamn:";
cell[0][2] = "Telefon:";
cell[1][0] = "Johan";
cell[1][1] = "Leitet";
cell[1][2] = "7716";
cell[2][0] = "Mats";
cell[2][1] = "Loock";
cell[2][2] = "7714";

阅读您的评论后,我想知道您的老师是否想要这样的东西:

var cell = [ // The outside array
  [],        // this is cell[0]
  [],        // cell[1]
  []         // cell[2]
];           // and closing the outside array

像这样压缩成一行:

var cell = [ [], [], [] ];
// or
var cell = [[],[],[]];

或者,您可以创建我们所说的对象字面量,然后说出您想要的内容...

var cell = [
  [
    "Förnamn:",
    "Efternamn:",
    "Telefon:"
  ],
  [
    "Leitet",
    "7716"
  ],
  [
    "Mats",
    "Loock",
    "7714"
  ]
];
于 2012-11-18T13:31:05.363 回答
0

在第一个示例中,您可以使其像这样工作:

var cell = [];    
cell[0] = [];
cell[0][0] = "Förnamn:";    
cell[0][1] = "Efternamn:";    
cell[0][2] = "Telefon:";    
cell[1] = [];
cell[1][1] = "Leitet";    
cell[1][2] = "7716";    
cell[2] = [];
cell[2][0] = "Mats";    
cell[2][1] = "Loock";    
cell[2][2] = "7714";

在你的代码中抛出异常是因为没有cell[0]- 它是未定义的,所以你必须先定义它。

一旦你使用了数组构造函数,它应该是这样的:

var cell = new Array();

并不是:

var cell = new array[]

或者

var cell = new array();

第一个构造是非法的,第二个不起作用,因为 JS 是区分大小写的语言。但是无论如何,您在这里都会遇到第二级问题。无论如何都必须定义每个第一级数组,就像在第一个代码块中一样。

于 2012-11-18T13:37:40.790 回答