将变量作为Rest Parameter的Spread操作符



我想使用排列运算符过滤data。我有一个函数,它的参数是category

问题是,当我将category作为arg传递给排列运算符时,我得到了一个明显的错误:符号";类别";已声明。

如何使用CCD_ 4而不是硬编码的";标题"?

const data = {
"subscription": {
"Headlines": ["headline1", "headline1"],
"News": ["news1"],
}
}
const category = "Headlines";
// const { category, ...rest } = data.subscription; This does not work.
const { Headlines, ...rest } = data.subscription; // This works.
const updatedData = {...data, subscription: rest};
console.log(updatedData);

为了解构动态属性,可以使用方括号[]并将解构的值分配给变量名:

const data = {
"subscription": {
"Headlines": ["headline1", "headline1"],
"News": ["news1"],
}
};
const category = "Headlines";
const { [category]: categoryProp, ...rest } = data.subscription;
const updatedData = {...data, subscription: rest};
console.log(updatedData);

最新更新