<分区>
使用 Object rest destructuring可以直接将对象的属性列入黑名单,如下例所示:
const original = {
a: 1,
b: 2,
c: 3,
evil: "evil",
ugly: "ugly",
};
const { evil, ugly, ...sanitized } = original;
console.log(sanitized); // prints { a: 1, b: 2, c: 3 }
我想知道是否存在类似的简洁方法来做同样的事情,但使用属性的白名单(在示例中:{ a, b, c }
)。很多时候,我必须将可用属性的子集转换为 JSON,这样的功能会使代码更具可读性和安全性。
我发现了一个类似的问题,但它不是完全相同的问题: Is there a more terse way to map properties of one object to another in ES6/ES2015?
编辑:很遗憾,下一个代码不起作用,因为它返回原始对象而不是过滤后的对象。
const sanitized = {a, b, c} = original;
// sanitized === original