JS如何将一个已知数组赋给一个新定义的数组

JavaScript014

JS如何将一个已知数组赋给一个新定义的数组,第1张

将小数组的值循环赋值给大数组,如果大数组未满,继续循环赋值。或者直接一个循环(大数组的长度作为循环限制)赋值到小数组完,重置小数组的index为0,直到大数组全部赋值完。

【相关拓展】

第一种用for循环:

int[] x={1,2}

int[] y=new int[2]

for(int i=0i<x.lengthi++){

y[i]=x[i]

第二种用java提供的arraycopy

int[] x={1,2}

int[] y=new int[2]

System.arraycopy(x, 0, y, 0, x.length)//变量依次是(原数组,从原数组第几位开始,目标数组,从第几位开始粘贴,复制长度)

原因:

思路没有问题,但对一维和二维的使用上有些偏差,特别是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>