[英]Can I destructure a variable where property name defined by a variable itself?
[英]Javascript object destructure with property name in variable
是否可以通過使用存儲在變量中的屬性名稱來解構 Javascript 中的對象?
這就是我們目前的解構方式。
const myObject = {a: 1, b: 2, c: 3};
let {a, b, c} = myObject;
console.log(a, b, c);
我希望能夠將屬性名稱存儲在變量中:
const myObject = {banana: 1, apple: 2, strawberry: 3};
const chosenFruit = "banana";
const { [[chosenFruit]], ...theRest } = myObject;
console.log(banana); // Should be 1
為了完全公開,我希望能夠這樣做的原因是我想從對象中刪除屬性“banana”。 所以在我的用例中,我想留下不包含banana
屬性的theRest
對象,但有時我想遍歷一組值(例如一周中的幾天)並以編程方式快速解構對象。
這可能嗎? 如果是這樣,如何?
謝謝!
const myObject = {banana: 1, apple: 2, strawberry: 3}; const chosenFruit = "banana"; const newThing = { ...myObject }; delete newThing[chosenFruit]; console.log(myObject, newThing);
此版本使用解構進行克隆,然后移除不需要的屬性。
具有解構參數的變體:
const pick = (fruit, {[fruit]: out, ...fruits}) => [out, fruits]; const [fruit, fruits] = pick('banana', basket); console.log(fruit); console.log(fruits); console.log(basket);
<script>const basket = { banana: 1, apple: 2, strawberry: 3 };</script>
這也適用於非動態選擇,如果您希望變量名稱與水果名稱相同
const myObject = { banana: 1, apple: 2, strawberry: 3 };
const { banana, ...theRest } = myObject;
console.log(banana); // 1
console.log(theRest);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.