如何从字符串中删除引号,以便它可以用于关联数组

时间:2014-04-01 10:44:17

标签: javascript arrays associative-array

我希望能够从一个数组中获取一个字符串,并使用一个关联数组获取该主题的一些统计信息。

var subjects = ['Biology','English'];
var HBio = [5.8,8.6,7.4,9.5,10.4,8.8,9.2,9.9,7.2,7.1,7.8,6.5,1.5,2.2];
var h = new Object();
h['Biology'] = HBio;
array=h.Subjects[0];

问题是Subjects [0]的字符串有引号,所以我不能使用array = h.Subjects [0],有什么方法可以解决这个问题吗?或者我应该尝试别的吗?

2 个答案:

答案 0 :(得分:0)

你想要

var array = h[subjects[0]];

array = h.Subjects[0];

FIDDLE

答案 1 :(得分:0)

而不是h.Subjects[0]你写了这个h[subjects[0]],那么你的代码将是

var subjects = ['Biology','English'];
var HBio = [5.8,8.6,7.4,9.5,10.4,8.8,9.2,9.9,7.2,7.1,7.8,6.5,1.5,2.2];
var h = new Object();
h['Biology'] = HBio;
array=h[subjects[0]]; //result will be [5.8, 8.6, 7.4, 9.5, 10.4, 8.8, 9.2, 9.9, 7.2, 7.1, 7.8, 6.5, 1.5, 2.2] 

这背后的原因是,当你写h.subjects[0]时。这意味着您h是一个拥有关键主题'它包含一个数组。但实际上我们有h一个具有关键生物学的对象,它包含一个值数组,而subjects是一个包含主题名称的数组。因此,要使用两者获取值,首先我们必须从subjects数组中获取值subjects[0],然后将此值放在h中,如此h[subjects[0]]。现在它将做的是首先获得0个主题索引,即“生物学”和“生物学”。然后从对象Biology获取密钥h的值。 我希望它能清除问题,值得你。 谢谢