我来自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"]
我来自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"]
简短的回答:我相信你正在寻找的语法是这样的:
obj[myarray[0]] = 1.00;
这里假设你有一个数组,myarray
,并且第一个项目在数组中(索引0)具有要与obj
对象一起使用的密钥的名称。
请注意,= 1.00
是分配,因此它会将该值存储在您的对象中。为了进行比较,您需要==
or ===
operators。
龙答:
从你的问题代码:
obj = {
val1: 1.00, val2: 2.00}
创建一个名为obj
名为val1
和val2
两个属性的对象。这些属性可以像这样访问:
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.00
和2.00
作为数字将仅返回1
和2
- 如果您需要在小数点后保留尾随零,则需要将它们存储为字符串。
+1为了搞清楚原始问题的意图。我删除了我自己的答案,这是一个几乎错过。 – 2012-01-29 04:33:27
来到这里有不同的问题,但你的答案也帮助我。谢谢。^_ ^ – 2013-08-28 08:16:43
你不明白你在问什么。你能解释一下你在JavaScript中寻找什么功能吗?你的意思是在你将属性名称作为字符串时访问一个对象的属性? – 2012-01-29 03:58:42
我不明白你在写什么。 – Tom 2012-01-29 03:59:16
@AtesGoral是的,看起来他有一个属性的名称存储为一个数组中的字符串。然后他想使用数组中的字符串值来访问该对象的属性。 – lpd 2012-01-29 04:09:32