【发布时间】:2012-08-15 14:35:19
【问题描述】:
我想念 VB。也许这很可悲……
我需要制作一个“3 维”数组来表示以下数据。数据以 XML 开头,然后被解析为二维“数组数组”,如下所示(为清楚起见添加了描述符):
[NodeArray]
[Node: 0][Year: 2012][Quantity1: 3][Quantity2: 5] [Title: Orange]
[Node: 1][Year: 2012][Quantity1: 5][Quantity2: 9] [Title: Apple]
[Node: 2][Year: 2011][Quantity1: 4][Quantity2: 9] [Title: Orange]
[Node: 3][Year: 2011][Quantity1: 8][Quantity2: 12] [Title: Apple]
[Node: 4][Year: 2010][Quantity1: 2][Quantity2: 6] [Title: Orange]
[Node: 5][Year: 2010][Quantity1: 10][Quantity2: 2] [Title: Apple]
我想将这个 2-D Array 解析为 3-D Object Array,如下所示:
[Year Array]
[2012]
[Quantity1]: [3],[7]
[Quantity2]: [5],[9]
[Title]: [Orange],[Apple]
[2011]
[Quantity1]: [4],[8]
[Quantity2]: [9],[12]
[Title]: [Orange],[Apple]
[2010]
[Quantity1]: [2],[10]
[Quantity2]: [6],[2]
[Title]: [Orange],[Apple]
在 VB 中,这非常简单。我会查看我的原始数据并重新调整我的数组以适应每个维度中的最大条目数。然后我会遍历数据并将其加载到...
如果 2012 年的索引 = 0,那么“Array(0,1,1)”将返回“9”
我相信这可以在 JSON 中完成,但我没有足够的经验知道如何操作。我希望这个问题足够具体,可以对我想要完成的工作提供一些见解。
------------------编辑和新代码------------------
感谢您的回答。
我意识到我目前的致命缺陷是我没有使用 JSON 构建我的二维数组(尽管我的示例看起来是这样)。这是我用来构建二维数组的方法:
for(i=0; i<titleArray.length; i++)
{
rowArray[i] = [yearArray[i], titleArray[i],quantityOneArray[i],quantityTwoArray[i]];
}
因为每个数组中总是有相同数量的条目,所以我可以可靠地使用一个数组的长度来遍历所有关联的数组。我也意识到使用“i++”是中学做事的方式,所以我愿意接受有关更优雅的索引方法的建议。
但是假设我想用 JSON 构建它?我相信这还不是 JSON 格式……如果是,那么我应该可以说“rowArray[i].year”是吗?
再次感谢 - 我很幸运有这样一个活跃的社区。p>
-------------------- EDIT2 & 新代码--------------------
好的,我想我破解了 JSON 问题。我喜欢你!我只需要稍微改变数组对象的格式,现在我可以使用 .whatever 属性来调用数组的成员!
for(i=0; i<titleArray.length; i++)
{
rowArray[i] = {"year":yearArray[i], "title":titleArray[i],"quantity1":quantityOneArray[i],"quantity2":quantityTwoArray[i]};
console.log("rowArray["+i+"]: " + rowArray[i].year + ", " + rowArray[i].title +", "+rowArray[i].quantity1+", "+rowArray[i].quantity2);
}
现在是 3-D 阵列...
【问题讨论】:
标签: jquery arrays json multidimensional-array