我有一个在 NodeJS 中执行了数百万次的循环,其中包括从某些对象中删除一些不需要的属性。
我很想知道一般来说,这样做是否更快:
undesiredPropsArray.forEach(p => delete(obj[p]))
或
var newObj = {};
Object.keys(obj).forEach(p => { if (!undesiredPropsObj[p]) newObj[p] = obj[p] });
简单地运行测试并不像听起来那么简单,因为所需和不需要的属性的数量会有所不同。
最佳答案
如果您暂时假设每个命令的执行时间相同,那么执行命令较少的任务执行速度会更快。换句话说,如果与您想要保留的属性数量相比,您不需要的属性较少,那么删除应该更快(反之亦然)。不过,除非我们谈论的是处理大量次的大型对象,否则节省的时间将是微不足道的。我想:)
关于javascript - 删除属性或构造仅具有所需属性的新对象更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47984998/