Javascript 从另一个数组访问JSON数组项

Javascript 从另一个数组访问JSON数组项,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我是JS n00b,所以我很抱歉问了这么简单的问题。(非常简单,so的其余部分提供了比我需要的更复杂的答案。)我有一个JSON数组,如下所示: var comics = {"spider":"Spiderman", "bat":"Batman", "super":"Superman", "aqua":"Aquaman"}; 我想从另一个数组访问该数组中的项,如下所示: var childhood_heroes = {"fire":"Firefighters", "jordan":"Michae

我是JS n00b,所以我很抱歉问了这么简单的问题。(非常简单,so的其余部分提供了比我需要的更复杂的答案。)我有一个JSON数组,如下所示:

var comics = {"spider":"Spiderman", "bat":"Batman", "super":"Superman", "aqua":"Aquaman"};
我想从另一个数组访问该数组中的项,如下所示:

var childhood_heroes = {"fire":"Firefighters", "jordan":"Michael Jordan", "superhero":[comics.super, comics.bat]};
我使用jQuery将其附加到HTML中的一个div中,并使用:

$('#which_heroes').click(function() {
    $('#jobs').html(childhood_heroes.fire);
    $('#sports').html(childhood_heroes.jordan);
    $('#supers').html(childhood_heroes.superhero);
});
前两个在第三个不在时工作。第三者的出现打破了一切。我做错了什么?

这个

$('body').html([“一”,“二])

产生

未捕获错误:未找到错误:DOM异常8

因此,您的问题是将字符串数组传递给jQuery
.html()
函数,这显然不能很好地处理它。在你通过它之前把它变成一根绳子,比如

$('#supers').html(childhood_heroes.superhero.join(', '));
应该有用

中的
.html()
的两个有效参数是


在访问可能需要字符串的数组时,可以使用join()将superhero数组中的所有条目放入字符串:

$('#supers').html(childhood_heroes.superhero.join(", "));

确保
漫画
儿童英雄
之前已初始化

不要吹毛求疵,但您定义的东西都不是JavaScript或JSON数组。它们只是非常松散意义上的“数组”。这一对:
“super”:“Superman”
会引起问题,因为
super
是保留的,所以
漫画。super
至少会在IE中引发错误


重命名它,或者使用
comics[“super”]
符号。

注意,如果
superhero
[“super”,“bat”]
,而不是显式引用,那么你的JSON将不那么耦合。将
[comics.super,comics.bat]
替换为
comics.super+'+comics.bat
,它不是“JSON数组”。这是一个JavaScript对象。Jason-我不确定“少耦合”是什么意思,但我肯定会查一下,谢谢!Val-即使数组中只有一个对象,我也会遇到这个问题,所以这可能不会有什么帮助。但是谢谢!菲利克斯-嗯,谢谢,但这仍然不能解决我的问题problem@Heather:这就是我发表评论的原因。如果我想解决你的问题,我会提供一个答案;)澄清术语也很重要!我被你的编辑弄糊涂了,你是说JavaScript变量、对象、数组和jQuery代码不是JavaScript吗?你也可以精确地说它们是对象。@Robert,我是说
{“蜘蛛”:“蜘蛛侠”,…}
不是OP中断言的JSON数组。抱歉,我误解了其意图是针对标记的,说只有阵列才是合法的标签。谢谢你把它清理干净。我的错。就像我说的,我只是在学习。关联数组是我使用过的所有数组。一个“适当的”数组有什么不同?因为我的示例完全是虚构的,与我的实际代码无关,所以我很确定这不是问题所在。但是谢谢。这非常有效,我真的很感谢你解释为什么我所做的不起作用。非常感谢。
$('#supers').html(childhood_heroes.superhero.join(", "));