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

Javascript には、C のように 2D 配列がありません。次のように、配列の配列を使用してエミュレートできます。

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

次のように 1 行に圧縮します。

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 = [
    [
        "Förnamn:",
        "Efternamn:",
        "Telefon:"
    ],
    [
        "Leitet",
        "7716"
    ],
    [
        "Mats",
        "Loock",
        "7714"
    ]
];
于 2012-11-18T13:32:17.283 に答える
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 は大文字と小文字を区別する言語であるため、最初の構成は違法であり、2 番目の構成は機能しません。しかし、とにかくここで第 2 レベルで問題が発生します。最初のコード ブロックと同様に、最初のレベルの各配列を定義する必要があります。

于 2012-11-18T13:37:40.790 に答える