从JavaScript对象中删除falsies

Num*_*022 5 javascript object delete-operator

所以我编写了一个简短的函数来从具有虚假值的对象中删除成员:

for (var key in object) {
    if (!object[key]) {
        delete object[key];
    }
}
Run Code Online (Sandbox Code Playgroud)

几天后,我检查源代码控制,有人将其更改为:

var newObject = {};
for (var key in object) {
    if (object[key]) { newObject[key] = object[key]; }
}
return newObject;
Run Code Online (Sandbox Code Playgroud)

办理登机手续没有任何评论,这家伙今天不在工作.

哪种实施更好?每种方法的性能影响是什么?

Yac*_*oby 3

您无法删除从原型继承的对象上的属性。因此,在某些情况下,您的代码可能无法按预期工作。

来源