Remove value from object without mutating it

阅读时长 3 分钟读完

在前端开发中,我们时常需要从一个对象中删除一些属性值。然而,在删除对象的属性时,会直接修改对象本身,这可能会导致其他部分的代码受到影响。在本文中,我们将探讨如何不改变原始对象的情况下,从 JavaScript 对象中删除属性。

方法1:使用 Object.assign()

我们可以使用 Object.assign() 方法来实现非破坏性地删除对象属性。以下是一个示例代码:

在上面的代码中,我们首先创建了原始对象 originalObj 和要删除的属性名称 propertyToDelete。然后,我们使用 Object.assign() 方法将原始对象的所有属性复制到一个新对象 newObj 中。接下来,我们删除指定的属性,并查看结果。这样做,我们可以确保原始对象仍然是不变的。

方法2:使用解构赋值

在 ECMAScript 6(ES6)中,我们可以使用对象解构语法来删除对象属性。以下是一个示例代码:

在上面的代码中,我们使用解构赋值从原始对象中删除属性 b 并将其余属性存储在新对象 newObj 中。这样做,我们可以非破坏性地删除指定的属性。

方法3:使用 Lodash 库

如果您愿意使用第三方库,Lodash 提供了一个名为 omit() 的方法来删除对象属性。以下是一个示例代码:

在上面的代码中,我们使用 Lodash 库的 omit() 方法从原始对象中删除指定的属性,并将结果存储在新对象 newObj 中。这种方法与前两种方法相比可能会使代码更加简洁易读。

总结

在本文中,我们讨论了如何在不改变原始 JavaScript 对象的情况下删除对象属性。我们介绍了使用 Object.assign()、对象解构语法以及 Lodash 库的 omit() 方法来实现此目标。这些方法可以帮助我们避免意外修改对象,并使代码更加易于维护。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/28014

纠错
反馈