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

Storing values in variable like multidimensional array value using FOR loop

本文关键字:数组 变量 循环 FOR 存储 使用      更新时间:2023-09-26

我有一个多维数组函数,它正在从数据库sqlite获取值。

var myarray = [];

数组值将如下所示:

myarray[0][0] = "ABC";
myarray[0][1] = "abc";
...
...
...
myarray[3][1] = "GHI";

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

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(var t =0; t<md2.length; t++){
var g = 0;
md2 = [myarray[t][g],myarray[t][g+1]];
}

以上是行不通的.

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

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 循环或其他方式做到这一点。建议非常可观。

您可以使用

下面的代码。检查演示 - 小提琴

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的副本,这就是你在代码中所做的一切,就像现在一样

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

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

二维数组只需在"普通"数组上构建即可创建。

 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]]

希望对您有所帮助。

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

var md2 = [];
var cnt = 0;
for(var i=0;i<myArray.length;i++){
md2[i] = myArray[i];
}