[英]How to delete an entire javascript object?
我有这个数组:
const hobbies = [{name:'Skate'}, {name:'Movies'}, {name:'Food'}]
循环遍历我想删除名称为 Skate 的 object
for (const iterator of hobbies) {
if(iterator === 'Skate'){
delete object
}
}
事实证明,我认为我们不能从字面上删除 object,知道如何做到这一点吗?
JavaScript 没有提供显式删除对象的机制。
您必须改为删除对 object 的所有引用来做到这一点。 这将使其符合垃圾收集的条件,并且在垃圾收集器下一次进行扫描时将被删除。
由于在此示例中,对 object 的唯一引用是作为数组的成员,您可以使用splice
将其删除。
const hobbies = [{name:'Skate'}, {name:'Movies'}, {name:'Food'}] const index_of_skate = hobbies.findIndex( object => object.name === 'Skate' ); hobbies.splice(index_of_skate, 1); console.log(hobbies);
一个简单的filter()
就可以完成这项工作:
let hobbies = [{name:'Skate'}, {name:'Movies'}, {name:'Food'}] hobbies = hobbies.filter((o) => o.name;== 'Skate'). console;log(hobbies);
最简单的方法是在数组上使用filter
方法:
let hobbies = [{name:'Skate'}, {name:'Movies'}, {name:'Food'}]
hobbies = hobbies.filter(hobby => hobby.name !== 'Skate')
只要确保将爱好分配给过滤后的数组(就像我所做的那样),因为它不会修改原始数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.