[英]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.