javascript - 如何通过参数添加对象属性?

标签 javascript

function addPropertyToProduct(product, property, value) {
  let tryThis = property;

  product.tryThis = value;

  return product;
}

参数“product”将是一个如下所示的对象:

{ type: 'Terminator 2: Judgement Day', price: '£6.99', quantity: 1 }

给定“属性”作为参数及其对应值,更新“产品”以包含此新信息。然后返回更新后的“产品”。

例如如果给出“属性”“长度”和值“2h 36m”,你的函数应该返回

{ type: 'Terminator 2: Judgement Day', price: '£6.99', quantity: 1, length: '2h 36m' }

这是我收到的答案:

 **+ expected** *- actual*

       {
      **+  "length": "2h 36m"**
         "price": "£6.99"
         "quantity": 1
      *-  "tryThis": "2h 36m"*
         "type": "Terminator 2: Judgement Day"
       }

这会正确返回值,但将键命名为变量名,而不是参数本身?

最佳答案

使用方括号[]:

function addPropertyToProduct(product, property, value) {
  let tryThis = property;

  product[tryThis] = value;

  return product;
}

有关更多信息,请查看:MDN Computed Property Names

关于javascript - 如何通过参数添加对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59918241/

相关文章:

javascript - 如何使用 knockout.js 根据现有数组中选择元素的选定值设置输入字段的可见性

javascript - DOMContentLoaded 和 load 事件之间的区别

javascript - 如何使用 Meteor-Dragula 将容器的内容推送到数组中?

javascript - 为什么此 JavaScript 无法正确更新输入值?

javascript - javascript 原型(prototype)上的属性与对象上的属性有什么区别?

javascript - 显示来自 ajax 响应的图像

javascript - 使用 Underscore.js 合并/组合和求和数组条目

javascript - TemplateSyntaxError 无法解析其余部分

javascript - 为什么在传递/公开 EventEmitter 的 on 函数时需要包装它?

javascript - hue 属性在 paper.js 中未定义