Javascript 对象解构,变量中包含属性名称

Tho*_*son 5 javascript destructuring

是否可以使用存储在变量中的属性名称来解构 Javascript 中的对象?

这就是我们目前解构的方式。

const myObject = {a: 1, b: 2, c: 3};
let {a, b, c} = myObject;
console.log(a, b, c);
Run Code Online (Sandbox Code Playgroud)

我希望能够将属性名称存储在变量中:

const myObject = {banana: 1, apple: 2, strawberry: 3};
const chosenFruit = "banana";
const { [[chosenFruit]], ...theRest } = myObject;
console.log(banana); // Should be 1
Run Code Online (Sandbox Code Playgroud)

为了充分披露,我希望能够执行此操作的原因是我想从对象中删除属性“banana”。因此,在我的用例中,我希望保留theRest不包含banana属性的对象,但有时我想迭代一组值(例如一周中的几天)并以编程方式快速解构对象。

这可能吗?如果是这样,怎么办?

谢谢!

Nin*_*olz 11

您可以采用计算出的属性名称并重命名该属性(分配给新的变量名称)。

const myObject = { banana: 1, apple: 2, strawberry: 3 };
const chosenFruit = "banana";
const { [chosenFruit]: fruit, ...theRest } = myObject;

console.log(fruit); // 1
console.log(theRest);
Run Code Online (Sandbox Code Playgroud)