`
换个号韩国红果果
  • 浏览: 48047 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类

数组元素是对象时,删除时需要注意的(不是直接用delete删除)

阅读更多
数组元素(虽然下面获得的不是一个数组,只是一个集合,但是也成利)是对象时,当销毁这个对象,则数组自动把它从数组中去掉,同时数组长度减为1,不同于delete ,delete一个数组元素,则这个数组元素所在的位依然在,数组长度不变。

举个列子,当body中有很多个span元素时,现在把这些元素从dom树中删除。


var spanlist=document.getElementsByTagName('span');
//假如下面的删除代码段写成这样的形式:for(var i=0;i<spanlist.length;i++){ document.body.removeChild(spanlist[i])},那么会发现,只删除了一半元素,这是为什么呢?如开篇所说,删除第一个span后,spanlist动态更新,长度变为原始长度-1,而下一个i指向的是第1个元素(不是spanlist[0]),所以把spanlist[0]给漏掉了。所以最后只删掉了一半。
while(spanlist.length!=0){
   document.body.removeChild(spanlist[0])
}
  • 大小: 8.8 KB
  • 大小: 23.6 KB
分享到:
评论

相关推荐

    不改变长度删除数组中的元素

    数组的长度是其可容纳元素的最大数量,当我们说"不改变长度删除元素"时,意味着不会使用`remove()`或`delete`等直接移除元素的方法,因为这些方法会改变数组的长度,可能导致后续元素的索引错乱。取而代之的是,我们...

    javascript怎么删除数组的指定元素.docx

    而`delete`运算符在删除数组元素时,数组长度不变,且可能导致下标错乱,因此在大多数情况下,推荐使用`splice`方法来删除数组元素。 在实际编程中,根据具体需求选择合适的方法。如果需要保持数组的连续性,`...

    JavaScript使用delete删除数组元素用法示例【数组长度不变】

    了解这些方法后,你可以根据实际需求选择合适的方式来删除数组元素。在大多数情况下,使用`splice()`或`filter()`会更加合适,因为它们会更新数组的长度,使得数组的表示更清晰。而`delete`操作符在处理数组时应谨慎...

    JS中彻底删除JSON对象组成的数组中的元素

    总之,当需要在JSON对象组成的数组中彻底删除元素时,应使用`splice()`方法,而不是`delete`运算符。`splice()`不仅可以删除元素,还可以添加或替换元素,因此它是处理数组时非常强大的工具。在实际编程中,理解并...

    element vue Array数组和Map对象的添加与删除操作

    需要注意的是,尽管这里描述了Vue.set的使用方法,但在Vue 3中,由于其引入了Proxy进行响应式系统,所以对数组的操作已经不再需要Vue.set,可以直接进行赋值。不过,在Vue 2中,Vue.set仍然是非常有用的工具。 总结...

    javascript删除数组元素的七个方法示例

    这种方式经常用于数组元素为对象时,根据对象的属性进行条件匹配和删除。 最后是使用prototype原型方法。在JavaScript中,几乎所有的对象和数组都可以扩展其原型来添加新的方法。通过为Array的原型添加一个自定义...

    Vue实现动态添加或者删除对象和对象数组的操作方法

    如果 `isDelete` 为 `true`,则使用 `splice` 方法从数组中移除该对象,并递减循环计数器 `i`,以避免跳过下一个元素。 在实际应用中,这些操作可能与用户交互事件关联,如按钮点击事件。例如,`add` 方法用于添加...

    js删除数组

    在实际开发中,`splice()`、`pop()`、`shift()`和`filter()`通常更为实用,而`delete`操作符由于其副作用一般不推荐用于数组元素的删除。了解这些方法的用法和特性,能更好地进行数组管理,提高代码效率。

    javascript删除数组元素并且数组长度减小的简单实例

    总的来说,通过自定义方法`deleteValue`和`deleteIndex`,我们可以方便地在JavaScript中实现按值或索引删除数组元素,并确保数组长度减少,这在处理数组时是非常实用的功能。在实际开发中,可以根据需求选择适合的...

    javascript数组元素删除方法delete和splice解析

    使用`delete`操作符删除数组元素时,指定索引位置的元素会被设置为`undefined`,同时数组的长度不会发生改变。这意味着数组中将留下一个空洞,即该位置的元素是`undefined`,但这个空洞仍然占用数组的一个位置。这种...

    C++Builder动态对象数组

    它允许程序动态地增加或减少数组元素的数量,同时保持元素的连续存储。这使得访问元素更加高效。 - **初始化与使用** 首先在类中声明一个`DynamicArray*&gt;`类型的变量: ```cpp DynamicArray*&gt; HillDA; ``` ...

    js代码-delete 数组的 item,数组的 length 是否会 -1

    在JavaScript中,`delete`操作符对数组元素的处理不如对对象属性那么直接有效。要从数组中删除元素并更新`length`属性,建议使用`splice()`或`filter()`方法。了解这些差异对于编写健壮的JavaScript代码至关重要,...

    javascript删除JSON元素.pdf

    JavaScript 删除 JSON ...此外,需要注意的是,有些方法不能真正删除数组元素,而只是把它设置为空了,例如使用 chaomao[1] = null 或 delete chaomao[1],这只是把 chaomao[1] 的值设置为空,而不是真正删除数组元素。

    JS删除对象中某一属性案例详解

    3. 数组:数组是JavaScript中的一种特殊的对象,可以使用delete操作符来删除数组中的某个元素。这会将该元素的位置清空,但不会删除数组的长度属性。例如,如果删除数组中间的一个元素,该位置将变为empty(或者在...

    JS实现数组删除指定元素功能示例

    如果`indexList`不是一个数组,而是一个单独的索引值,代码会直接调用`splice`方法删除该索引对应的元素。 5. **输出结果**: 代码最后使用`console.log`分别输出删除元素前后的数组状态,以便观察效果。 在实际...

    JS中彻底删除对象组成的数组中的元素

    因此,在处理对象数组时,应优先考虑使用`splice()`来删除元素,而不是`delete`运算符。 此外,`splice()`还可以用于向数组中添加新元素。例如,如果你想在索引2的位置插入一个新的对象: ```javascript arrobj....

    解析javascript 数组以及json元素的添加删除

    首先,JavaScript数组是通过方括号“[]”来定义的,是一种特殊的对象类型,它提供了多种方法用于添加、删除和修改数组元素。数组中的元素可以是任何数据类型,包括对象和函数。 对于数组的添加和删除操作,文章介绍...

    数组数据处理对象实训C++实验报告.pdf

    - `Delete(int)`函数删除数组中指定的元素,如果元素不存在则返回0,否则删除并返回1。 - `display()`函数打印数组的所有元素,有两种形式,一种是打印单个元素,另一种是按8个元素一行的方式打印整个数组。 3. ...

    javascript 删除数组元素和清空数组的简单方法

    本篇文章将详细介绍如何使用JavaScript删除数组元素以及清空数组的几种方法。 1. **清空数组** 清空数组最简单的方法是使用`splice()`方法。例如: ```javascript var ary = [1, 2, 3, 4]; ary.splice(0, ary....

    Actionscript中delete关键字例子

    总之,`delete`关键字在ActionScript中用于删除对象属性或数组元素,但在使用时需要注意其限制和潜在的影响。在处理动态对象和数组时,理解`delete`的工作方式以及何时避免使用它是至关重要的。通过熟练掌握这一特性...

Global site tag (gtag.js) - Google Analytics