我有这个:
var filters = {a: 1, b: undefined}
我想要这个:
{ a:1 }
有什么办法可以通过使用像
{...filters}
这样的现代Javascript功能来获得上述对象? 最佳答案
除非您事先知道一个undefined
的奇异属性,否则使用rest语法或类似的新方法是不可能的,尽管可以通过序列化和反序列化该对象来实现。代码很短,但是很笨拙,仅当对象中的所有内容都可序列化时才有效:
var filters = {a: 1, b: undefined};
var filtersNoUndef = JSON.parse(JSON.stringify(filters));
console.log(filtersNoUndef);
或者,当然,您可以手动遍历属性:
var filters = {a: 1, b: undefined};
const filtersNoUndef = { ...filters };
Object.entries(filtersNoUndef).forEach(([key, val]) => {
if (val === undefined) {
delete filtersNoUndef[key];
}
});
console.log(filtersNoUndef);