[英]Multiple nested spread operators inside of an array (javascript es2015)
[英]JavaScript/ES2015 - Keep all the properties of an object except one whit Rest/Spread operators
我有這個對象:
const value = {
"template": "<span translate>myRecommendations</span>",
"badge": "<span>{{ notifications }}</span>",
"sref": "recommendation.list"
}
我想使用Rest / Spread運算符來創建另一個具有相同名稱( value
)的對象,並具有除badge
屬性之外的所有屬性
因此,如果要在當前變量中保留另一個形狀,只需從對象中刪除該屬性。
const value = { "template": "<span translate>myRecommendations</span>", "badge": "<span>{{ notifications }}</span>", "sref": "recommendation.list" }; delete value.badge; console.log(value);
如果您需要另一個對象,則可以使用對象銷毀
const value = { "template": "<span translate>myRecommendations</span>", "badge": "<span>{{ notifications }}</span>", "sref": "recommendation.list" }; const { badge, ...anotherValue } = value; console.log(anotherValue);
或遍歷對象鍵並獲取所需的屬性
const value = { "template": "<span translate>myRecommendations</span>", "badge": "<span>{{ notifications }}</span>", "sref": "recommendation.list" }; const anotherValue = Object.keys(value).reduce((obj, key) => { if(key !== 'badge') { obj[key] = value[key] ; } return obj; }, {}); console.log(anotherValue);
您不能有兩個名稱相同的變量。 但是,如果您不想變異原始對象而仍然使用spread syntax
,則可以考慮以不同的方式命名新對象,例如value2
。
const value = { "template": "<span translate>myRecommendations</span>", "badge": "<span>{{ notifications }}</span>", "sref": "recommendation.list" }; const { badge, ...value2 } = value; // ^^^^^^ prop you want NOT to include in your new object console.log(value2);
干得好:
const value = { "template": "<span translate>myRecommendations</span>", "badge": "<span>{{ notifications }}</span>", "sref": "recommendation.list" } const { badge, ...updatedValue } = value; console.log(updatedValue)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.