假设我有这个代码:
var myArray = new Object(); myArray["firstname"] = "Bob"; myArray["lastname"] = "Smith"; myArray["age"] = 25;
现在,如果我想删除“姓氏”?....是否有一些等价物 myArray["lastname"].remove()?
myArray["lastname"].remove()
(我需要元素消失,因为元素的数量很重要,我想保持干净。)
JavaScript 中的对象可以被认为是关联数组,将键(属性)映射到值。
要从 JavaScript 中的对象中删除属性,请使用delete运算符:
delete
const o = { lastName: 'foo' } o.hasOwnProperty('lastName') // true delete o['lastName'] o.hasOwnProperty('lastName') // false
请注意,当delete应用于 an 的索引属性时Array,您将创建一个稀疏填充的数组(即,一个缺少索引的数组)。
Array
在使用 的实例时Array,如果您不想创建一个稀疏填充的数组(通常也不会),那么您应该使用Array#spliceor Array#pop。
Array#splice
Array#pop
请注意,deleteJavaScript 中的运算符不会直接释放内存。其目的是从对象中删除属性。当然,如果一个被删除的属性持有一个对象的唯一剩余引用o,那么o随后将以正常方式被垃圾收集。
o
使用delete操作符会影响 JavaScript 引擎优化 代码的能力。