簡體   English   中英

二維數組的次要問題

[英]Minor issue with two dimensional array

希望您能幫我這個忙。 我有以下代碼:

var m = new Array([],[]);
var p=1; 
while(p<=20){
  x=formula.;
  y=formula.;
  m.push(x);
  m[p-1].push(y) //here spits and error - Uncaught Type Error: m[(p - 1)].push is not a function
  p++;
 ...
}

我也嘗試過'm[p][0]=x'; 'm[p][1]=y;' but on m[p][0]. 'm[p][0]=x'; 'm[p][1]=y;' but on m[p][0]. ..引發錯誤,因為扇區0未定義或如此。

我相信您正在嘗試執行以下操作:

var m = new Array();
var p=1; 
while(p<=20){
  m.push([]) // we add an empty array to m so p-1 position exists
  m[p-1].push(p) // we add an element to m[p-1]
  p++;
}

console.log(m)
var m = [];
var p=1; 
while(p<=20){
  x=formula;
  y=formula;
  m.push([x,y]);
  p++;
}

筆記:

  1. 很少需要Array() ,而是使用[]來縮短它。
  2. 所有數組都是一維的,但是您可以嵌套數組
  3. 您可以使用[x,y]之類的變量構建數組
  4. 第一個計算的x將在m[0][0] ,第一個計算的y將在m[0][1]
  5. 這產生m = [[[x1,y1],[x2,y2],[x3,y3],...]`

相反,如果您想要m=[[x1,x2,x3,...],[y1,y2,y3,...]] ,則應采用不同的編碼方式:

var xs=[],ys=[];
var p=1; 
while(p<=20){
  x=formula;
  y=formula;
  xs.push(x);
  ys.push(y);
  p++;
}

var m = [xs,ys];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM