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(); |
两者都是非破坏性的,不会影响
您可以使用此代码存储从多维到单维的值
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]] |
希望能帮到你。