簡體   English   中英

如何通過參數添加對象屬性?

[英]How do I add an object property via an argument?

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

  product.tryThis = value;

  return product;
}

參數“product”將是一個如下所示的對象:

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

給定一個“屬性”作為參數,以及它的相應值,更新“產品”以包含這個新信息。 然后返回更新的“產品”。

例如,如果給定 'property' 'length' 和值 '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 計算屬性名稱

function addProperty(obj,propertyName,value){

      obj.propertyName = value;
      return obj;

}

此函數將簡單地動態創建一個屬性並為其添加值。 希望它有所幫助。

注意:您還可以使用擴展運算符,而不是將“產品”分配給函數內的新變量。 但是,總的來說,“計算屬性名稱”是 Alvaro 上面所說的關鍵:)

function addPropertyToProduct(product, property, value) {
  return {
    ...product,
    [property]: value
  }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM