[英]Converting One Dimensional Array to Two Dimensional
我有一個一維數組,我想將其轉換為二維數組。 因此,我為此使用循環。 為了證明已正確輸入每個索引數組,我將其打印到屏幕上。 但是它只打印第一行,然后拋出錯誤
未捕獲的TypeError:無法設置未定義的屬性“ 0”
我聽說在JS中,數組與其他語言(我對Java最熟悉)相比有所不同。 所以,也許我以某種方式混淆了它,但是我不知道。
這是我的代碼。
var k = 0; //move tha matrix from one dimensional matrix to two dimensional var cubes = new Array([]); for(var i = 0; i < n; i++){ for(var j = 0; j <= n; j++){ cubes[i][j]=matriks[k]; document.write("["+ i +"]["+ j +"] = "+cubes[i][j].value + " "); k++; } }
矩陣是一維數組。 多維數據集是我要放置矩陣的二維數組。
問題是您沒有告訴JavaScript存儲在最外面的數組中的對象應該是一個數組。 當您嘗試使用內部數組時,您尚未初始化它們,因此變得不確定。 要解決此問題,您只需將代碼更改為:
var k=0;
var cubes = [];
var i, j;
for(i=0; i<n; i++){
cubes[i] = [];
for(j=0; j<=n; j++){
cubes[i][j]=matriks[k];
document.write("["+i+"]["+j+"] = "+cubes[i][j].value+" ");
k++;
}
j=0;
}
二維數組“多維數據集”的聲明不正確,因為您必須初始化矩陣的每一行,這會產生錯誤
var k=0;
//move tha matrix from one dimensional matrix to two dimensional
var cubes = [];
for(var i=0; i<n; i++){
cubes[i] = [];
for(var j =0; j<=n; j++){
cubes[i][j]=matriks[k];
console.log("value at ", i, j, " = ", cubes[i][j]);
k++;
}
}
這行:
var cubes = new Array([]);
創建一個包含一個條目的數組,這是另一個數組。 它不會創建多維數組(JavaScript沒有它們,它具有數組數組)。 這意味着除了條目[0]
之外, cubes
集中的任何地方都沒有數組。
要解決此問題,請將其更改為
var cubes = [];
並添加
cubes[i] = [];
剛過
for(var i=0; i<n; i++){
創建每個子數組。
例如:
var k=0;
//move tha matrix from one dimensional matrix to two dimensional
var cubes = [];
for(var i=0; i<n; i++){
cubes[i] = [];
for(var j =0; j<=n; j++){
cubes[i][j]=matriks[k];
document.write("["+i+"]["+j+"] = "+cubes[i][j].value+" ");
k++;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.