Javascript 传入对象和数组变量

Javascript 传入对象和数组变量,javascript,arrays,object,Javascript,Arrays,Object,我在一个javascript对象中创建了一个对话框,该对象分为对象和数组(类似于JSON格式) 我想通过传入它们各自的变量名来访问这些对象和数组 例如,如何访问“父对象名称”对象和子数组“数组名称”?我尝试过创建对象和数组,然后将它们传入,如下所示: var parent_object_name = npc_dialog.people[NPC_id].dialogs.answers; var child_array_name = npc_dialog.people[NPC_id].dialogs

我在一个javascript对象中创建了一个对话框,该对象分为对象和数组(类似于JSON格式)

我想通过传入它们各自的变量名来访问这些对象和数组

例如,如何访问“父对象名称”对象和子数组“数组名称”?我尝试过创建对象和数组,然后将它们传入,如下所示:

var parent_object_name = npc_dialog.people[NPC_id].dialogs.answers;
var child_array_name = npc_dialog.people[NPC_id].dialogs.answers.AnswerOne;
cycleDialog(0, parent_object_name, child_array_name);
但那没用

因此,我尝试将名称作为字符串传入:

cycleDialog(0, "parent_object_name", "child_array_name");
这也没用

cycleDialog接受这些变量并将其替换为:

function cycleDialog(NPC_id, TYPE, SUBTYPE) {
    NPCs_ARRAY[NPC_id].children[1].text = npc_dialog.people[NPC_id].dialogs.TYPE.SUBTYPE[dialog_id];
}
多谢各位


编辑:

数据如下所示:

"dialog" : 
{   
    "dialog_name" :
    [ 
              "dialog",
              "more text..."
    ]
},
"answers" : 
{   
    "answer_name" :
    [ 
              "answer text here",
              "more text..."
    ]
}

你可能想要这个:

function cycleDialog(NPC_id, TYPE, SUBTYPE) {
    NPCs_ARRAY[NPC_id].children[1].text = npc_dialog.people[NPC_id].dialogs[TYPE][SUBTYPE][dialog_id];
}
以及:

cycleDialog(0, parent_object_name, child_array_name);
.x
[x]
之间的区别在于
.x
查找键
'x'
,而
[x]
查找变量
x
计算结果为:

> var array = {x: 100, foobar: 200}
> var x = 'foobar';
> array.x
100
> array[x]
200

不能通过传递变量名将变量传递给函数。
唯一的方法是传递他们的地址或值。

你的函数
cycleDialog
从对象
npc\u对话框中获取数据。人物[npc\u id]。对话框
。如果我理解正确,您所需要做的就是将该对象中您希望它查找的对象的名称传递给它,然后按照克劳迪乌的答案更改
cycleDialog
功能

e、 g.
cycleDialog(0,'answers','answers_name')

将返回
[
“此处回答文本”,
“更多文本…”
]


使用您给出的示例数据(假设此数据位于
npc_dialog.people[0]。dialogs
)。

这与您的其他问题有什么不同吗?现在,当我传入
cycleDialog(0,“答案”,“普通话”)
对话框
应该能够查找与字符串“answers”和“mandarn”匹配的键,对吗?它表示
无法读取未定义的属性“答案”
though@Growler:这意味着
npc\u dialog.people[npc\u id]。dialogs
undefined
而不是您所期望的。好的,谢谢。您上面提到的差异(
.x
[x]
)在访问键值和访问变量计算结果的键值方面。。。这只是用于对象,还是可以与数组具有类似的结构?@Growler:对于数组也是如此,尽管
x.1
是无效语法,因此不能用这种方式处理数字