我想念VB。或许这很悲哀……
我需要制作一个“3 维”数组来表示以下数据。数据以 XML 开头,并被解析为 2D“数组数组”,如下所示(为清楚起见添加了描述符):
[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 数组解析为 3-D 对象数组,如下所示:
[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”是吗?
再次感谢 - 我很幸运有这样一个活跃的社区。
-------------------- 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 阵列...