在 JavaScript 中从对象中删除属性
本教程将解释我们如何通过多种方法从 JavaScript 对象中删除一个属性。我们将演示使用 ECMAScript 6 中的 delete
运算符、重赋值机制、underscore
库和 spread
语法。
在 JavaScript 中使用 delete
运算符从对象中删除一个属性
删除任何对象的任何属性的一种方法是 delete
运算符。这个运算符将属性从对象中删除。例如,我们有一个对象 myObject
,其属性为 id
、subject
和 grade
,我们需要删除 grade
属性。
var myObject = {'id': '12345', 'subject': 'programming', 'grade': 'A'};
console.log('Original object:', myObject);
// delete the grade property
delete myObject.grade
console.log('Updated object: ', myObject)
输出:
Original object: {id: "12345", subject: "programming", grade: "A"}
Updated object: {id: "12345", subject: "programming"}
在 JavaScript 中使用 underscore
库删除对象的属性
在 JavaScript 中,有一个库可以帮助从对象中删除一个属性,但又不更新原始对象,这个库就是 underscore 库。该库提供了两个重要的函数 _.pick()
和 _.omit()
。
_.omit()
函数可以从对象中删除给定的属性,并返回更新后的副本。
var myObject = {'id': '12345', 'subject': 'programming', 'grade': 'A'};
console.log('Original object:', myObject);
var updatedObject = _.omit(myObject, 'grade')
console.log('Updated object with omit() : ', updatedObject)
console.log('Original object after update:', myObject);
输出:
Original object: {id: "12345", subject: "programming", grade: "A"}
Updated object with omit() : {id: "12345", subject: "programming"}
Original object after update: {id: "12345", subject: "programming", grade: "A"}
_.pick()
函数只包含对象的给定属性,而忽略所有其他属性,并从该对象返回更新后的副本。
var myObject = {'id': '12345', 'subject': 'programming', 'grade': 'A'};
console.log('Original object:', myObject);
var updatedObject = _.pick(myObject, 'id', 'subject')
console.log('Updated object with pick() : ', updatedObject)
console.log('Original object after update:', myObject);
输出:
Original object: {id: "12345", subject: "programming", grade: "A"}
Updated object with pick() : {id: "12345", subject: "programming"}
Original object after update: {id: "12345", subject: "programming", grade: "A"}
我们可以从这里导入库。
使用 spread
语法从 JavaScript ECMAScript 6 中的对象中删除属性
ECMAScript 6 中的 JavaScript spread
语法提供了一种非常优雅的方法,可以在不改变原对象的情况下,从 JavaScript 对象中删除给定的属性,但返回新更新的对象。
当我们使用 spread
语法时,它将看起来就像我们把原始对象分成两个变量。其中一个将是删除的属性。另一个变量将持有原始对象的副本,但不包括那个移除的对象。
var myObject = {'id': '12345', 'subject': 'programming', 'grade': 'A'};
console.log('Original object:', myObject);
var {grade, ...myUpdatedObject} = myObject;
console.log('The removed \'grade\' property : ', grade)
console.log('Updated object : ', myUpdatedObject)
console.log('Original object after update:', myObject);
输出:
Original object: {id: "12345", subject: "programming", grade: "A"}
The removed 'grade' property : A
Updated object : {id: "12345", subject: "programming"}
Original object after update: {id: "12345", subject: "programming", grade: "A"}
相关文章
如何使用 JavaScript 检查 DOM 元素是否存在
发布时间:2023/02/23 浏览次数:190 分类:JavaScript
-
检查 DOM 中是否不存在元素: 使用 getElementById 或 querySelector 方法来选择元素。 检查该值是否不等于 null。 如果该值不等于 null,则该元素存在于 DOM 中。 这是示例的 HTML。 !DOCTYPE html
如何使用 JavaScript 转义字符串中的引号
发布时间:2023/02/20 浏览次数:755 分类:JavaScript
-
在 JavaScript 中转义字符串中的引号 要转义字符串中的单引号或双引号,需要在字符串内容中的每个单引号或双引号之前使用反斜杠 \ 字符,例如 thats it。 const escapeSingle = it\s a string ;
如何使用 JavaScript 从集合中删除元素
发布时间:2022/12/21 浏览次数:172 分类:JavaScript
-
要从 Set 中删除元素,请调用 delete() 方法,将值作为参数传递给它。 如果该值存在于 Set 中,则将其从 Set 对象中删除并返回 true ,否则该方法返回 false 。 const set1 = new Set ([ one , two ,
如何使用 JavaScript 通过连字符拆分字符串
发布时间:2022/11/28 浏览次数:119 分类:JavaScript
-
使用 split() 方法通过连字符拆分字符串,例如 str.split(-) 。 split 方法将分隔符作为参数,并根据提供的分隔符拆分字符串,返回一个子字符串数组。 const str = one-two-three ; const result = s
如何使用 JavaScript 检查类型是否为布尔值
发布时间:2022/11/25 浏览次数:258 分类:JavaScript
-
使用 typeof 运算符检查值是否为布尔类型,例如 if (typeof variable === boolean) 。 typeof 运算符返回一个指示值类型的字符串。 如果该值为布尔值,则返回字符串boolean。 const bool = true ; if (
如何使用 JavaScript 展平数组
发布时间:2022/10/26 浏览次数:183 分类:JavaScript
-
使用 flat() 方法展平数组,例如 const flat = arr.flat()。 flat 方法有一个参数,默认为 1,表示嵌套数组应该被展平的深度。 该方法返回一个新数组,其中连接有子数组元素。
如何使用 JavaScript 合并 Map
发布时间:2022/09/06 浏览次数:1273 分类:JavaScript
-
要合并 Map,请使用扩展运算符 (...) 将两个或多个 Map 的值合并到一个数组中,并将它们传递给 Map() 构造函数,例如 new Map([...map1, ...map2])。 新 Map 将包含来自所有提供的 Map 对象的键值对
如何使用 JavaScript 合并集合(Set)
发布时间:2022/09/05 浏览次数:721 分类:JavaScript
-
要合并集合,请使用扩展运算符 (...) 将两个或多个集合的值合并到一个数组中,并将它们传递给 Set() 构造函数,例如 new Set([...set1, ...set2])。 新集合将包含来自提供的 Set 对象的所有元