【相关拓展】
第一种用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>