当键是字符串时,如何使用整数值引用javascript哈希?

当键是字符串时,如何使用整数值引用javascript哈希?,javascript,Javascript,我的网页上的javascript哈希如下所示: {"7":{"prop1":234, ....}"101":{"prop1":121,....} 我试着这样引用它: var a = 7; my_hash[a].prop1 但它似乎没有在键“a”处找到散列对象,因为a是整数,而我的键是字符串 如何将其转换为字符串 我试过: my_hash[" + a + "].prop1 但这也不起作用。只需创建一个字符串: var a = "7"; 如果您已经有一个数字,并且希望将其设置为字符串,请通

我的网页上的javascript哈希如下所示:

{"7":{"prop1":234, ....}"101":{"prop1":121,....}
我试着这样引用它:

var a = 7;

my_hash[a].prop1
但它似乎没有在键“a”处找到散列对象,因为a是整数,而我的键是字符串

如何将其转换为字符串

我试过:

my_hash[" + a + "].prop1
但这也不起作用。

只需创建一个字符串:

var a = "7";
如果您已经有一个数字,并且希望将其设置为字符串,请通过以下方式将其强制设置为字符串:

var n = 7;
var a = n + "";
因此,这些都将起作用:

my_hash["7"].prop1;

var a = "7";
my_hash[a].prop1;

var n = 7;
var a = n + "";
my_hash[a].prop1;
编辑:一些将其转换为内联字符串的示例:

my_hash[7 + ""].prop1;

var n = 7;
my_hash[n + ""].prop1;
只需创建一个字符串:

var a = "7";
如果您已经有一个数字,并且希望将其设置为字符串,请通过以下方式将其强制设置为字符串:

var n = 7;
var a = n + "";
因此,这些都将起作用:

my_hash["7"].prop1;

var a = "7";
my_hash[a].prop1;

var n = 7;
var a = n + "";
my_hash[a].prop1;
编辑:一些将其转换为内联字符串的示例:

my_hash[7 + ""].prop1;

var n = 7;
my_hash[n + ""].prop1;
为什么不这样做:

var a = "7";

my_hash[a].prop1

此外,我假设这只是复制/粘贴到SO问题中,但其中缺少一个逗号:

{"7":{"prop1":234, ....}"101":{"prop1":121,....}
应该是:

{"7":{"prop1":234, ....}, "101":{"prop1":121,....}
为什么不这样做:

var a = "7";

my_hash[a].prop1

此外,我假设这只是复制/粘贴到SO问题中,但其中缺少一个逗号:

{"7":{"prop1":234, ....}"101":{"prop1":121,....}
应该是:

{"7":{"prop1":234, ....}, "101":{"prop1":121,....}


您可以像gilly3建议的那样将数字强制转换为字符串。但是你也可以直接打电话,直接打电话。例如:

(1).toString() === "1" // evaluates to true.
这也适用于变量,因此您可以执行以下操作:

for (var i=0; i<10; i++) {
    property = myObject[i.toString()]["property"];
    // do something with property
}

for(var i=0;i您可以像gilly3建议的那样将数字强制转换为字符串。但是您也可以只调用数字本身的.toString。例如:

(1).toString() === "1" // evaluates to true.
这也适用于变量,因此您可以执行以下操作:

for (var i=0; i<10; i++) {
    property = myObject[i.toString()]["property"];
    // do something with property
}

for(var i=0;iNo,您不能。您需要两个点:
1..toString
,因为一个点将被解释为数字的一部分。啊,这一点很好。但我想我更愿意使用“(1).toString()”.Edited.Benry-是的,这是首选。不,你不能。你需要两个点:
1..toString
,因为一个点将被解释为数字的一部分。啊,这一点很好。但我想我更愿意使用“(1).toString().Edited.Benry-是的,这是首选。如何将其转换为内联字符串?@Blankman-其中
n
是一个数字,只需执行
(n+)
,parens可选,具体取决于上下文。我添加了几个示例。如何检查键是否存在,只需执行if(my_hash[a+“”)或@Blankman-使用:
if((a+“”)在my_hash中)
。但是没有必要将其转换为字符串。如何将其转换为内联字符串?@Blankman-其中
n
是一个数字,只需执行
(n+)
,根据上下文选择参数。我添加了几个示例。如何检查键是否存在,只需执行if(my_hash[a+“”)或?@Blankman-使用:
if((a+“”)在我的_散列中)
。但无需将其转换为字符串。它应该可以正常工作。如果提供数字,则会通过属性解析算法将其转换为字符串。但是,如果密钥为“07”,则不会正常工作。它应该可以正常工作。如果提供数字,则会通过属性解析算法将其转换为字符串。但是,如果y是'07'它不起作用。