我有一个数组嵌套的对象,它在一个对象内部,也在一个对象中。
编辑:--我的原始数据结构是错误的,所以这里是console.log(数据)的屏幕帽:

这是从AJAX请求返回的,我在获取数组时遇到了问题。诀窍是,它不会总是每个父对象返回3个数组,数组的数量取决于"length",或者更确切地说,"length“是每个包含数组的对象中期望的数组数量的反映。"OID“是"th”和“呃”对象的每个数组的名称。
还碰巧有几个主要对象,它们是用for(var i in data)迭代的。
我试过这样的方法:
for(var i in data) {
for(var x in data[i].clicks) {
//And now I'm lost here
//I've tried getting the name of the Array from "OID"
//and going from there, that failed miserably.
}
}如何获得每个数组的内容,最好是在不知道所述数组的名称、数量或长度的情况下完成。
提前谢谢。
发布于 2011-05-05 23:58:52
您的问题和数据结构不太清楚,而且我也不熟悉用于声明数组的语法,这在我看来是不正确的。
如果您希望您的数据结构是
data={
"Clicks": {
"length": 3, //Can be between 0-3
"OID": {
1: "1",
2: "2",
3: "3"
},
"th": {
1: [
null,
null,
null,
null
],
2: [
null,
null,
null,
null
],
3: [
null,
null,
null,
null
]
},
"uh": {
1: [
null,
null,
null,
null
],
2: [
null,
null,
null,
null
],
3: [
null,
null,
null,
null
]
}
}
};您想要做的是迭代th和uh中的所有元素,其中键来自OID中的条目,您应该执行以下操作
for(var i = 1; i <= data.Clicks.length; i++){
data.Clicks.th[data.Clicks.OID[i]];
data.Clicks.uh[data.Clicks.OID[i]];
}但是,如果您的键仅为数字,则似乎可以通过为每个th和uh返回数组来为您提供更好的服务。
data={
"Clicks": {
"th": [
[
null,
null,
null,
null
],
[
null,
null,
null,
null
],
[
null,
null,
null,
null
]
],
"uh": [
[
null,
null,
null,
null
],
[
null,
null,
null,
null
],
[
null,
null,
null,
null
]
]
}
};并访问它
//assuming th and uh are of the same length always
for(var i = 1; i <= data.Clicks.th.length; i++){
data.Clicks.th[i];
data.Clicks.uh[i];
}https://stackoverflow.com/questions/5905316
复制相似问题