相关疑难解决方法(0)

javascript多维动态数组

我可以使用一些指导来在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)

javascript

12
推荐指数
1
解决办法
5万
查看次数

了解javascript中的嵌套for循环

我现在在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]用于访问数组(我想?).我只是不明白为什么最后它会打印出这些数字?几年前我发现这个问题,但它只是解释了如何编写它们,而不是它们是如何工作的:

对于多维javascript数组中的循环

我把它分解成:

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)

javascript for-loop

12
推荐指数
2
解决办法
4万
查看次数

为什么对单元格所做的更改会传播到使用fill创建的这个二维数组中的其他单元格?

我在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)

javascript arrays

12
推荐指数
3
解决办法
1619
查看次数

自动生成和Javascript

自动生成只与"derefencing"未定义的结构有关,因为在JavaScript中,如果指定索引或不存在的属性,它是否会动态创建它?但这不是自动生成,因为你必须声明底层结构首先是一个对象或一个数组?

javascript autovivification

7
推荐指数
2
解决办法
1677
查看次数

JSON.Net错误地将二维数组序列化为一维

试图将二维数组转换为二维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)

.net c# json.net

7
推荐指数
2
解决办法
7263
查看次数

为什么这两个javascript 2d阵列的行为有所不同?

在我的函数中,我定义了两个数组,第一个(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)

javascript arrays multidimensional-array

6
推荐指数
2
解决办法
103
查看次数

制作有两个皇后的棋盘

我希望在终端中制作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)

javascript

6
推荐指数
1
解决办法
67
查看次数

javascript创建多维数组语法

今天我听说可以使用这种语法在js中创建一个多维数组:

var a = new Array(3,3);
a[2][2] = 2;
alert(a[2][2])
Run Code Online (Sandbox Code Playgroud)

然而,这在歌剧中不起作用.我错了吗?

javascript

5
推荐指数
1
解决办法
2万
查看次数

如何在javascript中创建nxn矩阵/数组?

我想创建一个具有非固定行数的数组或矩阵

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)

我怎样才能做到这一点?

javascript

5
推荐指数
2
解决办法
7175
查看次数

在javascript中初始化和填充多维数组

我们如何初始化和创建新的多维数组?

让我们想象一下,如果我想初始化一个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));

javascript arrays multidimensional-array

5
推荐指数
1
解决办法
205
查看次数