【发布时间】:2013-07-08 15:18:03
【问题描述】:
我的目标是能够通过向数组添加元素来跟踪我在 JSON 树中的位置/深度,然后使用该数组访问 JSON 中的嵌套节点。现在说数组foo 它只有一个元素:
foo = ["customers"]
因此该元素将充当 JSON 子级的引用,例如:
jsonTree["customers"]
jsonTree 类似于:
{
"customers":{
"name": "J. Goldsmith",
"orders": [{
"order": "1",
"order": "2"
}]
}
}
然后foo最终改变它的大小,变成
foo = ["customers","orders"]
所以 JSON 引用会变成
jsonTree["customers"]["orders"]
现在说customers.orders 可以变成customers.orders.order.date.etc.etc...有没有办法基于foo 数组的N 个元素以编程方式构建jsonTree 引用?
一些例子:
我有["John","Williams"] -> 我想构建composer["John"]["Williams"]
["Erich","Wolfgang","Korngold"] -> 我要构建composer["Erich"]["Wolfgang"]["Korngold"]
【问题讨论】:
-
你能解释一下你打算用这个做什么吗?它似乎是某种辅助构造,您要解决什么问题?
-
此外,您的示例对象在语法上无效。请在 jsFiddle 上设置一个工作示例来演示您的问题。
-
@RocketHazmat 数组数组有一个维度,这就是区别。它的一些成员可能是其他一维数组,但它们不一定是。它是一个嵌套的数据结构。多维数组是统一的。您可以拥有一个表现得像多维数组的数组数组,但这不是构建它的唯一方法,也不是以任何方式强制执行的。
-
@RocketHazmat,说实话,我也不确定,但我的朋友 Google 向我透露了以下信息:stackoverflow.com/questions/597720/…。虽然这个问题是专门针对 C 的,但对于 JS 来说,答案就足够了。
-
@Tomalak:那么,多维数组是强制维数的数组数组吗?我从来不知道有这样的结构存在!猜猜这就是我来自 PHP/JavaScript 背景的原因。我一直使用术语“多维数组”来描述数据结构,例如:
var multi = [[1,2,3],[4,5,6],[7,8,9]];。 :-) 我想没有什么能阻止你做var multi = ['a',[1,2,3],'b',[4,5,6],'c',[7,8,9,10]];:-P
标签: javascript json