JavaScriptV8-如何从迭代中最佳地删除对象属性

JavaScriptV8-如何从迭代中最佳地删除对象属性,javascript,optimization,v8,Javascript,Optimization,V8,读到从对象中删除值会大大降低对象的速度,并取消它们从V8的隐藏类性能改进中的资格 从对象中隐藏/删除属性以使其在迭代该对象时不出现的最佳方法是什么 用例:我正在将对象作为文档保存到NoSQL数据库中,如果某个字段为null,我根本不希望它显示在数据库结构中 创建没有值的新对象是否更快?使用Object.defineProperty将objects属性设置为可枚举:false?或者有更好的方法吗?创建一个全新的对象,并将除一个属性外的所有属性复制到该对象,怎么可能比删除myObj.property

读到从对象中删除值会大大降低对象的速度,并取消它们从V8的隐藏类性能改进中的资格

从对象中隐藏/删除属性以使其在迭代该对象时不出现的最佳方法是什么

用例:我正在将对象作为文档保存到NoSQL数据库中,如果某个字段为null,我根本不希望它显示在数据库结构中


创建没有值的新对象是否更快?使用
Object.defineProperty
将objects属性设置为
可枚举:false
?或者有更好的方法吗?

创建一个全新的对象,并将除一个属性外的所有属性复制到该对象,怎么可能比
删除myObj.property
更快呢?这些微观优化实际上是微不足道的。尝试确定应用程序的哪个部分对其速度影响最大,并尝试改进它。@Cerbrus:mably
delete
也会创建一个全新的底层对象……为什么不能将其设置为
null
并在迭代中过滤掉
null
值?我不认为
enumerable:false
有什么不同,但在较低的层次上,它需要创建更重的属性。这些对象是什么类型的,可能有这些属性,也可能没有这些属性?也许它们不会从隐藏类中获益……有时将数据存储为
[[key1,value1],…]会更快。当对象“足够大”时,查找对象字段的速度更快。