在 JavaScript 中移除数组中所有对象的属性?
我们在本文中将执行的任务是“在 JavaScript 中移除数组中所有对象的属性”。
JavaScript 中的对象由一系列键值对组成。其中的一对键值被称为对象属性。对于属性的键和值,可以使用任何数据类型,包括数字、字符串、数组、对象等。
有两种方法:一种是可变的,使用 delete 运算符;另一种是不可变的,使用对象重构。让我们讨论一下这种方法。
delete 运算符
delete 运算符会同时删除属性的值和属性本身。删除后的属性需要重新添加才能再次使用。delete 运算符可用于对象属性。变量和函数不受影响。
示例
在以下示例中,我们使用 delete 方法删除数组中的对象。
<!DOCTYPE html> <html> <body> <p id = "tutorial"></p> <script> const arr = [ {id: 1, name: 'teja', test: 'abd'}, {id: 2, name: 'suri', test: 'msd'}, ]; arr.forEach(object => { delete object['name']; }); document.getElementById("tutorial").innerHTML= JSON.stringify(arr); </script> </body> </html>
当脚本执行时,它将在 Web 浏览器上显示一个数组输出,其中使用 delete 方法(在用户执行脚本时触发)从实际数组中删除了对象。
对象解构
使用对象解构和剩余语法是另一种以不可变的方式移除属性的方法,而不会更改原始对象。
delete 运算符每次调用只能删除一个属性。因此,如果要移除 age 和 gender 属性,则需要进行两次 delete 调用。或者,您可以使用一次对象解构调用移除多个属性。
示例
考虑以下示例,我们使用对象解构来移除对象。
<!DOCTYPE html> <html> <body> <p id = "tutorial"></p> <script> const person = { firstName: "don", lastName: "bosco", gender: "Male", age: 21 }; const {age, gender, ...personTrimmed} = person; const json = JSON.stringify(personTrimmed); document.getElementById("tutorial").innerHTML=JSON.stringify(json); </script> </body> </html>
示例
让我们来看另一个示例,其中我们使用 delete 关键字在 JavaScript 中移除属性。
<!DOCTYPE html> <html> <body> <p id = "tutorial"></p> <script> var values = [ { "firstName": "John", "lastName":"Smith" }, { "firstName": "David", "lastName":"Miller" }, { "firstName": "Adam", "lastName":"Smith" } ]; values.forEach(function(obj){ delete obj.lastName }); document.getElementById("tutorial").innerHTML=JSON.stringify(values); </script> </body> </html>
广告