我有一个数组,我从我的SQL数据库中的JSON字段填充。 这是一个非常复杂的结构。
ID1: 0: ID2: 30: 0: 0:val1 1:val2 1: 0:val1 1:val2 34: 0: 0:val1 1:val2 1: 0:val1 1:val2 2: 0:val1 1:val2 3: 0:val1 1:val2 2: ...
我定义的问题是我首先得到未定义的,而且我似乎无法访问第一列。 我从中生成的数组没有文本(或者至少这是我的意图)。
代码是这样的:
ar = [];
...长层次结构,我分解了json输入 ......最后还是:
// Create object
if(typeof ar[id1] == 'undefined'){ //id1 is the first identitier
ar[id1] = [];
}
if(typeof ar[id1][id2] == 'undefined'){
ar[id1][id2] = [];
}
ar[id1][id2].push([val1, val2]);
当我打印出来时,我得到:
(3)[Array(46),undefined×1,Array(49)]
0:数组(46)
30:阵列(10)
0:数组(2)
0:“val1”
1:“val2”
1:数组(2)
0:“val1”
1:“val2”
34:阵列(22)
0:数组(2)
1:数组(2)
2:数组(2)
3:数组(2)
2:数组(49)......
长度不正确,未定义。 此外,我无法访问我的数组中的id1值。 我哪里出错了?
我的代码:
for (index in ar) {
console.log("Id1wwe: ", ar[index]);
console.log("Id1www: ", ar[index].length);
console.log("Id1wwa: ", ar[0].length);
console.log("Id1wwb: ", ar.length);
}
console.log("Length: ", ar.length);
for(let i = 0; i < ar.length; i++){
let tmpId1 = ar[i];
console.log("Id1: ", ar[i]);
}
它无效。 任何提示?
/弗雷德里克。
答案 0 :(得分:0)
问题在于您使用的是数据错误的结构:对{}
变量考虑[]
而不是ar
,那么您将能够
Object.keys(ar).length