关于 javascript:使用 FOR 循环将值存储在变量中,例如多维数组值

Storing values in variable like multidimensional array value using FOR loop

我有从数据库 sqlite 获取值的多维数组函数。

1
var myarray = [];

数组值如下所示:

1
2
3
4
5
6
myarray[0][0] ="ABC";
myarray[0][1] ="abc";
...
...
...
myarray[3][1] ="GHI";

我需要将这样的数组值存储在一个变量中:

1
2
3
4
var  md2 = [[myArray[0][0], myArray[0][1]],
    [myArray[1][0], myArray[1][1]],
    [myArray[2][0], myArray[2][1]],
    [myArray[3][0], myArray[3][1]]];

如何动态声明上述数组值?

我尝试了以下:

1
2
3
4
5
6
7
for(var t =0; t<md2.length; t++){

var g = 0;

md2 = [myarray[t][g],myarray[t][g+1]];

}

以上这行不行。

我的预期结果是使用 for 循环:

1
2
3
4
var  md2 = [[myArray[0][0], myArray[0][1]],
        [myArray[1][0], myArray[1][1]],
        [myArray[2][0], myArray[2][1]],
        [myArray[3][0], myArray[3][1]]];

我如何使用 for 循环或其他方法来做到这一点。
建议是非常可观的。


您可以使用下面的代码。检查演示 - Fiddle

1
2
3
4
5
6
var md2 = [];
for (var t=0; t < myarray.length; t = t+2){
   if (myarray[t] && myarray[t+1]) {
         md2.push( [ myarray[t], myarray[t+1] ] );
   }
}


这两种方法都会给你一份 myarray 的副本,这就是你现在在代码中所做的所有事情

1
2
3
var md2 = [].concat(myarray);
// OR
var md2 = myarray.slice();

两者都是非破坏性的,不会影响myarray


您可以使用此代码存储从多维到单维的值

1
2
3
4
5
var md2 = [];
var cnt = 0;
for(var i=0;i<myArray.length;i++){
md2[i] = myArray[i];
}


一个二维数组是通过简单地建立在一个"普通"数组上而创建的。

1
2
3
4
5
6
7
8
9
10
 var aa = new Array(3)
 for(var i=0; i<3;i++) {
    aa[i]=new Array(3);
    for(var j=0; j<3;j++) {
       aa[i][j] = j;
    }
  }
  console.log(aa);

 Output: [[0, 1, 2], [0, 1, 2], [0, 1, 2]]

希望能帮到你。