【问题标题】:JavaScript append to object using array key/value pairJavaScript 使用数组键/值对附加到对象
【发布时间】:2013-02-21 17:58:06
【问题描述】:

我有一个动态构建的对象示例:

obj = {};
obj.prop1 = 'something';
obj.prop2 = 'something';
obj.prop3 = 'something';

现在我需要从数组中取出一个项目并使用它来定义“propX”的等价物及其值

我想如果我做了类似的事情

obj.[arr[0]] = some_value;

那,那对我有用。但我也认为我得到的错误不是语法错误。 “. 运算符后缺少名称”。我明白,但我不知道如何解决它。最终目标是使用数组项的值作为对象的属性名称,然后用另一个也被传递的变量定义该属性。我的问题是,我怎样才能实现它,以便对象的附属物将被视为

obj.array_value = some_variable;

【问题讨论】:

  • 菲利克斯,很好的发现。我认为这确实构成了我在这里作为骗子的职位。只是没有找到它,因为我没有想到一个更好的短语来搜索。谢谢
  • 不用担心。事实上,这是一个很常见的问题。您可能会在这里找到我的 q/a 信息:stackoverflow.com/questions/11922383/…

标签: javascript jquery arrays object


【解决方案1】:

删除点。使用

obj[arr[0]] = some_value;

我建议你阅读 MDN 上的 Working with objects

【讨论】:

  • 是追加到对象上还是作为对象保留?
  • @chris:它将some_value添加到对象中,属性名称将是arr[0]的值。也许你的东西 bracket notation 在某种程度上与数组有关,但事实并非如此。这只是访问属性的另一种方式。
  • 我应该在示例中提供它。但是有一个硬编码的数组可以作为一个索引,我们可以随着时间的推移附加到这个索引上,所以在将来搜索数组在上下文中提供的所有引用时,我们可以在数组级别而不是整个代码上更改它基地。
  • @dystroy 感谢您的额外参考,我想我会读一读
【解决方案2】:

你可以试试

obj[arr[0]] = some_value;

即删除点:)

【讨论】:

    【解决方案3】:

    您几乎是对的,但您只需要删除 .从线:

    obj.[arr[0]] = some_value;

    应该阅读

    obj[arr[0]] = some_value;

    【讨论】:

    • @Amareswar:但这是错误的。它将尝试设置存储在obj.arr 中的数组的第一个元素。
    猜你喜欢
    • 1970-01-01
    • 2015-11-01
    • 2014-07-09
    • 1970-01-01
    • 2019-08-30
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多