js 二维数组动态赋值怎么做

JavaScript017

js 二维数组动态赋值怎么做,第1张

 var arr=new Array()

  for (var ij = 0 ij <= 10 ij++) {

      arr[ij] = new Array()

      if (ij < 10) {

          var idfz1, cs

          cs = "0"

          idfz1 = cs + ij

      }

      if (ij >= 10) {

          idfz1 = ij

      }

      for (var j = 0 j <= 3 j++) {

          if (j < 10) {

              var idfz2, cs1

              cs1 = "0"

              idfz2 = cs1 + j

          }

          if (j >= 10) {

              idfz2 = j

          }

          var id1 = idfz1 + idfz2

          //alert("id1:" + id1)

          arr[ij][j] = id1

         

      }

  }

alert(JSON.stringify(arr))

方法一:

定义已知长度的二维数组,可直接定义并且初始化

var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]]

方法二:

定义未知长度的二维数组

var tArray = new Array()//先声明一维数组

for(var k=0k<ik++) //一维数组长度为i,i为变量,可以根据实际情况改变

tArray[k]=new Array()  //声明二维,每一个一维数组里面的一个元素都是一个数组

for(var j=0j<pj++) //一维数组里面每个元素数组可以包含的数量p,p也是一个变量

{

tArray[k][j]="1"    //这里将变量初始化,我这边统一初始化为1

}

}

扩展资料:

JavaScript多维数组的创建:

<script>

var allarray=new Array()

var res=""

function loaddata()

{

for(var i=0i<3i++)

{

var starth=i*200

var strarw=i*200

var endh=(i+1)*200

var endw=(i+1)*200

allarray[i]=new Array()

allarray[i][0]=new Array()

allarray[i][1]=new Array()

allarray[i][0][0]=starth

allarray[i][0][1]=strarw

allarray[i][1][0]=endh

allarray[i][1][1]=endw

}

for(var i=0i<allarray.lengthi++)

{

var sh=allarray[i][0][0]

var sw=allarray[i][0][1]

var eh=allarray[i][1][0]

var ew=allarray[i][1][1]

res+="第"+i+"个坐标的开始坐标是:"+sh+","+sw+"结束坐标是:"+eh+","+ew+"<br/>"

}

document.getElementById("dv").innerHTML=res

}

</script>。

参考资料来源:MDN web docs-Array

原因:

思路没有问题,但对一维和二维的使用上有些偏差,特别是push

var plist={"productName":pds[j].value,"rackRate":pds[j].value}//这句话没有问题,就是一个生成一个对象。

----------------------------------

products[i][j].push(plist)//这里就有问题了,因为你说的是二维,products[i][j]就代表二维里面的具体内容,内容在push,那就是内容还是数组,也就是3维了,更何况三维没有new的话,这里肯定报错。因此这里需要改成products[i][j]=plist或者products[i].push(plist)

----------------------------------

alert(products[i][j].productName)//这句话没有问题

修改:

根据上面其中一种方法修改后

<script>

var pds=[]

var products=[]

pds.push({"value":"1"})

pds.push({"value":"2"})

pds.push({"value":"3"})

for(var i=0i<1i++){

  products[i] = []//申明二维数组

  for(var j=0j<pds.lengthj++){

     var plist={"productName":pds[j].value,"rackRate":pds[j].value}

     products[i].push(plist)

  }

}

alert(products[0][0].productName)

</script>