小编典典

如何从 JavaScript 关联数组中删除对象?

all

假设我有这个代码:

var myArray = new Object();
myArray["firstname"] = "Bob";
myArray["lastname"] = "Smith";
myArray["age"] = 25;

现在,如果我想删除“姓氏”?....是否有一些等价物 myArray["lastname"].remove()

(我需要元素消失,因为元素的数量很重要,我想保持干净。)


阅读 84

收藏
2022-03-03

共1个答案

小编典典

JavaScript 中的对象可以被认为是关联数组,将键(属性)映射到值。

要从 JavaScript 中的对象中删除属性,请使用delete运算符:

const o = { lastName: 'foo' }
o.hasOwnProperty('lastName') // true
delete o['lastName']
o.hasOwnProperty('lastName') // false

请注意,当delete应用于 an 的索引属性时Array,您将创建一个稀疏填充的数组(即,一个缺少索引的数组)。

在使用
的实例时Array,如果您不想创建一个稀疏填充的数组(通常也不会),那么您应该使用Array#spliceor
Array#pop

请注意,deleteJavaScript
中的运算符不会直接释放内存。其目的是从对象中删除属性。当然,如果一个被删除的属性持有一个对象的唯一剩余引用o,那么o随后将以正常方式被垃圾收集。

使用delete操作符会影响 JavaScript
引擎优化
代码的能力。

2022-03-03