【问题标题】:How to remove quotes from string so that it can be used for an associative array [closed]如何从字符串中删除引号,以便将其用于关联数组 [关闭]
【发布时间】:2014-04-01 10:44:16
【问题描述】:

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

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],有什么办法可以解决这个问题吗?还是我应该尝试其他方法?

【问题讨论】:

  • 这毫无意义?
  • 您是否正在尝试做类似var grade = h.Biology[0]; 的事情?
  • 好的,我的问题是 h.Biology 会给我 HBio 而不是 h.subject[0] 因为单词是用引号引起来的,我需要能够使用主题数组和一个关联数组似乎是最好的方法

标签: javascript arrays associative-array


【解决方案1】:

你想要

var array = h[subjects[0]];

不是

array = h.Subjects[0];

FIDDLE

【讨论】:

  • 非常感谢,我不敢相信我没有尝试过。
  • 详细说明:您看到引号,但它们不在字符串本身中,只是用于设置或显示字符串值。所有 javascript 对象都可以使用 obj.prop 或 obj['prop'],所以给定一个字符串 propStr,你可以使用 obj[propStr]。如果你做 h.subjects[0],那就是要求 h['subjects'] 对象的 0 属性,而不是 h 对象的subjects[0] 属性。
【解决方案2】:

你写的是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 主题索引,即“生物学”,然后从对象 h 获取键 Biology 的值。 我希望它会解决问题并且对你来说是值得的。 谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2021-11-04
    • 2015-11-04
    • 2014-12-06
    相关资源
    最近更新 更多