2012-01-29 55 views
-3

我来自Ruby世界。我如何使用数组的字符串值作为对象的属性?例如..使用字符串值作为对象的属性来查找属性的返回值

obj.myarray[0] = 1.00 // obviously this does not work, can you pro make it work? 

obj = { 
val1: 1.00, val2: 2.00} 

myarray = ["val1"] 
+1

你不明白你在问什么。你能解释一下你在JavaScript中寻找什么功能吗?你的意思是在你将属性名称作为字符串时访问一个对象的属性? – 2012-01-29 03:58:42

+0

我不明白你在写什么。 – Tom 2012-01-29 03:59:16

+0

@AtesGoral是的,看起来他有一个属性的名称存储为一个数组中的字符串。然后他想使用数组中的字符串值来访问该对象的属性。 – lpd 2012-01-29 04:09:32

回答

4

简短的回答:我相信你正在寻找的语法是这样的:

obj[myarray[0]] = 1.00; 

这里假设你有一个数组,myarray,并且第一个项目在数组中(索引0)具有要与obj对象一起使用的密钥的名称。

请注意,= 1.00分配,因此它会将该值存储在您的对象中。为了进行比较,您需要== or === operators

龙答:

从你的问题代码:

obj = { 
    val1: 1.00, val2: 2.00} 

创建一个名为obj名为val1val2两个属性的对象。这些属性可以像这样访问:

obj["val1"] 
// OR 
obj.val1 

其中点语法只适用于遵循JavaScript标识符名称规则的属性名称。使用括号和字符串语法,您可以将任何字符串用作属性名称。

然后

myarray = ["val1"] 

创建具有一个元件,字符串 “VAL1” 的阵列。所以,在我的“简短的回答”,使用的元素从数组访问对象的属性,你说:

obj[ myarray[0] ] 

(其中指数为0,如果需要,可以另外一个变量。)

您可能想要阅读以下内容:https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects(此外,请注意,在JavaScript中,数组是一种特殊类型的对象,旨在与数字索引一起使用,并不直接与其他语言的“关联数组”对应 - “简单” JS对象更接近“关联数组”)。

还要注意,要存储的值,1.002.00作为数字将仅返回12 - 如果您需要在小数点后保留尾随零,则需要将它们存储为字符串。

+1

+1为了搞清楚原始问题的意图。我删除了我自己的答案,这是一个几乎错过。 – 2012-01-29 04:33:27

+0

来到这里有不同的问题,但你的答案也帮助我。谢谢。^_ ^ – 2013-08-28 08:16:43

相关问题