使用字符串值作为对象的属性来查找属性的返回值

时间:2012-01-29 03:54:32

标签: javascript string object properties

我来自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 个答案:

答案 0 :(得分: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 - 如果您需要保留尾随小数点后的零,你需要将它们存储为字符串。