如何使用双括号声明数组

时间:2012-11-18 13:25:16

标签: javascript arrays

我正试图以这种方式制作一个阵列:

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";

6 个答案:

答案 0 :(得分: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"]
]

答案 1 :(得分:2)

喜欢这个

var array = [[]];

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

答案 2 :(得分: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";

答案 3 :(得分: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"
  ]
];

答案 4 :(得分:0)

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

答案 5 :(得分: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是区分大小写的语言。但是你在这里遇到第二级问题。无论如何必须定义每个第一级aray,就像在第一个代码块中一样。