我来自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"]
答案 0 :(得分:4)
简答:我相信您正在寻找的语法是:
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
- 如果您需要保留尾随小数点后的零,你需要将它们存储为字符串。