【问题标题】:Using the string value as the property of an object to find the property's returned value使用字符串值作为对象的属性,查找该属性的返回值
【发布时间】:2012-02-21 11:23:01
【问题描述】:

我来自 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"]

【问题讨论】:

  • 不清楚你在问什么。您能解释一下您在 JavaScript 中寻找的 Ruby 中的哪些特性吗?您的意思是在将属性名称作为字符串时访问对象的属性?
  • 我无法理解您所写的内容。
  • @AtesGoral 是的,看起来他的属性名称以字符串形式存储在数组中。然后他想使用数组中的字符串值来访问对象的属性。
  • 这是典型的 Javascript 社区。问一个问题,它会被否决。你们应该学习 ruby​​,你会发现一个更友好的社区

标签: javascript string object properties


【解决方案1】:

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

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 用于弄清楚原始问题的意图。我正在删除我自己的答案,这是一个差点错过。
  • 带着不同的问题来到这里,但你的回答也帮助了我。谢谢你。 ^_^
猜你喜欢
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 2018-06-15
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
相关资源
最近更新 更多