我可以使用一些指导来在javascript中指定动态多维数组.我知道javascript本身并不是定义多个dim数组,而是一个数组的数组,即.
var items = [[1,2],[3,4],[5,6]];
Run Code Online (Sandbox Code Playgroud)
要么
var array = [[,],[,]]
Run Code Online (Sandbox Code Playgroud)
要么
var a = [[1,2],[3,4]]
Run Code Online (Sandbox Code Playgroud)
我的问题是我不知道实际的尺寸,只是定义数组,如上面的第二个例子,仍然不允许数组超出两个记录集.我以为有一个类似于VB的REDIM stmt但是找不到任何东西.
我的另一个问题是,当我指定数组的第二个维度时,如下例所示,数组在for块之外变得无法访问.
var Exforsys=new Array(4)
for (i=0; i <4; i++) {
Exforsys[i]=new Array(4)
}
Run Code Online (Sandbox Code Playgroud)
我试图从我的特定数组中检索数据,如...
function newTest() {
var myArray = [[],[]];
// myArray[] = new Array(14);
var recCount = coordsAry.length / 15;
var n =0;
var i = 0;
var s = 0;
for (i = 0; i < recCount; i++) {
for (s = 0; s < 15; s++) {
// myArray[i] …Run Code Online (Sandbox Code Playgroud) 我现在在freecodecamp上学习JavaScript,他们在其中一个练习中有一个嵌套for循环的例子:
var arr = [[1,2], [3,4], [5,6]];
for (var i=0; i < arr.length; i++) {
for (var j=0; j < arr[i].length; j++) {
console.log(arr[i][j]);
}
}
Run Code Online (Sandbox Code Playgroud)
使用console.log = 1 2 3 4 5 6 undefined.
我或多或少了解循环,我知道[i]和[j]用于访问数组(我想?).我只是不明白为什么最后它会打印出这些数字?几年前我发现这个问题,但它只是解释了如何编写它们,而不是它们是如何工作的:
我把它分解成:
var arr = [ [1,2], [3,4], [5,6]];for (var i=0; i < arr.length; i++) {
console.log(arr[i]);}
Run Code Online (Sandbox Code Playgroud)
打印出来的
[ 1, 2 ]
[ 3, 4 ]
[ 5, 6 ]
undefined
Run Code Online (Sandbox Code Playgroud)
和
var arr = [ [1,2], [3,4], [5,6]];
for (var i=0; i < …Run Code Online (Sandbox Code Playgroud) 我在JS中使用这个2维数组有问题.当我改变时a[1][0],随之a[0][0]改变.我初始化它的方式有什么问题吗?如果是,我该如何正确初始化它?
>var a = Array(100).fill(Array(100).fill(false));
>a[0][0]
>false
>a[1][0]
>false
>a[1][0] = true
>true
>a[1][0]
>true
>a[0][0]
>true
Run Code Online (Sandbox Code Playgroud) 自动生成只与"derefencing"未定义的结构有关,因为在JavaScript中,如果指定索引或不存在的属性,它是否会动态创建它?但这不是自动生成,因为你必须声明底层结构首先是一个对象或一个数组?
试图将二维数组转换为二维JSON.Net数组.
下面的代码有什么问题吗?或者JSON.Net不支持这个吗?
var A = new int[2, 4] { { 1, 1, 1, 1 }, { 2, 2, 2, 2 } };
Console.WriteLine(JsonConvert.SerializeObject(A));
// CONSOLE: [1,1,1,1,2,2,2,2]
//
// NB. displays a one dimensional array
// instead of two e.g. [[1,1,1,1],[2,2,2,2]]
Run Code Online (Sandbox Code Playgroud) 在我的函数中,我定义了两个数组,第一个(array1),具有预初始化的长度.我添加了第二个数组(array2)仅用于测试,因为我认为第一个表现很奇怪.
我的代码:
function test(n = 3) {
array1 = new Array(n).fill(new Array(n));
array2 = [
[undefined, undefined, undefined],
[undefined, undefined, undefined],
[undefined, undefined, undefined]
];
document.getElementById("output").innerHTML = JSON.stringify(array1) + " (array 1) <br/>" + JSON.stringify(array2) + " (array 2)<br/><br/><hr/>";
for (i = 0; i < n; i++) {
array1[i][0] = i;
array2[i][0] = i;
}
document.getElementById("output").innerHTML += JSON.stringify(array1) + " (array 1) <br/>" + JSON.stringify(array2) + " (array 2)<br/><br/><hr/>";
}Run Code Online (Sandbox Code Playgroud)
<button onclick="test();">Press to test</button>
<br/><br/>
<div …Run Code Online (Sandbox Code Playgroud)我希望在终端中制作8 x 8的棋盘。我已经制作了正确的8 x 8网格,但是现在不能将两个皇后加为1
我一直在尝试,就像在代码arrayz [0] [1] = 1中看到的那样。我想知道问题是否出在我的循环中,还是有一种简单的方法可以将两个插入到问题中。
const generateBoard= function(){
let arrayz = []
let set= []
let newArray = []
for (i = 0; i < 8; i++){
newArray.push(0)
}
for (y = 0; y < 8; y++){
//newArray[0][1] = 1
arrayz.push(newArray)
arrayz[0][1] = 1 //my failed code that im trying to use to input a single one
}
return arrayz
}
console.log(generateBoard(whiteQueen, blackQueen))
[ [ 0, 1, 0, 0, 0, 0, 0, 0 ],
[ …Run Code Online (Sandbox Code Playgroud) 今天我听说可以使用这种语法在js中创建一个多维数组:
var a = new Array(3,3);
a[2][2] = 2;
alert(a[2][2])
Run Code Online (Sandbox Code Playgroud)
然而,这在歌剧中不起作用.我错了吗?
我想创建一个具有非固定行数的数组或矩阵
var matrix=[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我们如何初始化和创建新的多维数组?
让我们想象一下,如果我想初始化一个4x4多维数组并用0填充它
理想情况下,在2D阵列中,我们会这样做
let oned_array = new Array(10).fill(0); //将创建大小为10的数组并将其填充为0
我该怎么做[[0,0],[0,0]](2x2矩阵)
let matrix = new Array([]).fill(0);
Run Code Online (Sandbox Code Playgroud)
我正在尝试解决一些算法问题,这需要我创建一个新的多维数组并通过它们(岛问题等)
请指教.
编辑:
我发现另一个解决方案
Array(2).fill(0).map(_ => Array(2).fill(0));