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))
答:不同语言的二维数组赋值可能略微有不同, C语言中二维数组的赋值如下所示。举例使用int arr[2][3],先定义一个2行3列的二维数组,存储元素为整型。
分行给数组赋值,每行都放在一个中括号里面。举例int arr[2][3]={{1,2,3},{4,5,6}} 按顺序对所有元素赋值,如int arr[2][3]={1,2,3,4,5,6},其与方法1得到的效果是一样的 对部分元素赋初值,举例int arr[2][3]={{1},{2}},没有显式赋值的默认值为0,其结果与int arr[2][3]={{1,0,0},{2,0,0}}一致。
原因:
思路没有问题,但对一维和二维的使用上有些偏差,特别是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>