将一维数组转换为二维数组
Converting One Dimensional Array to Two Dimensional
我有一个一维数组,我想把它转换成二维数组。所以我用了loop。为了证明每个索引数组都被正确输入,我将其打印到屏幕上。但是它只打印第一行,然后抛出一个错误
Uncaught TypeError: Cannot set property '0' of undefined
我听说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;
}
二维数组"cubes"的声明不正确,您必须初始化矩阵的每一行,这会产生错误
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++;
}
}
相关文章:
- 作为一个二维数组,从ajax接收
- 创建P5.js二维数组
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- inArray,indexOf在二维数组中
- 比较二维数组js
- 将二维数组转换为单个数组
- 将字符串的一维数组转换为二维数组
- 将类似表的二维数组转换为对象 (JavaScript)
- JavaScript:将多维数组转换为二维数组
- 将长度为n的二维数组转换为级别为n的嵌套对象
- 将字符串转换为Javascript中的二维数组
- 将二维数组转换为对象
- 将JSON数据转换为二维数组
- 将javascript字符串转换为二维数组
- javascript数组转换为二维数组
- 将c#中的二维数组转换为javascript的Json字符串
- 使用JavaScript将一维数组转换为二维数组
- JavaScript:使用第一个“行”将二维数组转换为对象数组来定义属性
- 如何使用java脚本将变量转换为二维数组
- 将一维数组转换为二维数组