`
换个号韩国红果果
  • 浏览: 46058 次
  • 性别: 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
分享到:
评论

相关推荐

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

    在最开始的时候我尝试使用了 delete 运算符,但在查询数组长度的时候发现其实这种方法并不是彻底删除元素,而是删除它的值,但仍会保留空间。 var arrobj = [{ a: 1, b: 2 }, { c: 3, d: 4 }, { name: 'linzhu', ...

    JS在Array数组中按指定位置删除或添加元素对象方法示例

    JavaScript的数据中可通过splice/slice在指定位置添加或删除元素。另外还有slice、delete等方法实现。 splice简介 splice方法向/从数组中添加/删除项目,然后返回被删除的项目。 该方法会改变原始数组。 array...

    JScript内置对象Array中元素的删除方法

    我们知道JScript给我们... 要是熟悉JavaScript的话,会马上说,系统提供了一个delete操作,可以用来删除数组中的元素。对,JS系统里确实有一个delete可以删除数组中的元素。可是这个删除很难用,它确实可以删除元素,

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

    在最开始的时候尝试使用了 delete 运算符,但在查询数组长度的时候发现其实这种方法并不是彻底删除元素,而是删除它的值,但仍会保留空间。 var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": ...

    js 删除数组的几种方法小结

    这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用 for(index in arr) { [removed]('arr['+index+']='+arr[index]); } 这种遍历方式跳过其中...

    javascript的delete运算符知识点总结

    delete是一元操作符,它用来删除对象属性或者数组元素。就像 赋值、递增、递减运算符一样,delete也是具有副作用的,它是用来做删除操作的,不是用来返回一个值的,例如: var o = { x: 1, y: 2}; // 定义一个对象...

    浅析JavaScript中的delete运算符

    delete运算符将删除运算数所指定的对象的属性、数组元素或变量。如果删除操作成功,它将返回true,如果运算数不能被删除, 它将返回false。并非所有的属性和变量都是可以删除的,某些内部的核心属性和客户端属性不能...

    jlu-ios-club#jlu-ios-club.github.io#2019-03-30-Swift-数组-删除特定元素1

    filter方法支持 正则语句检索,功能很强大filter方法是生成一个新的对象,数组本身没有变化封装一个简单的delete方法即可 对自身重指向如果知道数组中

    JavaScript delete操作符应用实例

    delete expression expression 参数是一个有效的 JScript 表达式,通常是一个属性名或数组元素。 说明 如果 expression 的结果是一个对象,且在 expression 中指定的属性存在,而该对象又不允许它被

    《javaScrip开发技术大全》源代码

    • sample11.htm 使用delete运算符删除数组元素 • sample12.htm in运算符在对象中的使用 • sample13.htm in运算符在数组中的使用 • sample14.htm instanceof运算符 • sample15....

    delobject:与DELETE相似,但更宽容,并允许删除多个对象。-matlab开发

    删除对象DELOBJECT( H ) 删除带有句柄 h 的对象,但更宽容比删除:当 h 为空、零或无效时,不采取任何行动。 此外,DELOBJECT 允许同时删除多个句柄时间: - H 可以是一个句柄数组; 所有对象都被删除。 - H 可以是...

    springmybatis

    查询出列表,也就是返回list, 在我们这个例子中也就是 List&lt;User&gt; , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 ...

    javascript文档

    delete 运算符 删除对象的属性,或删除数组中的一个元素。 description 属性 返回或设置关于指定错误的描述字符串。 Dictionary 对象 存储数据键、项目对的对象。 dimensions 方法 返回 VBArray 的维数。 除法...

    微软JavaScript手册

    delete 运算符 删除对象的属性,或删除数组中的一个元素。 description 属性 返回或设置关于指定错误的描述字符串。 Dictionary 对象 存储数据键、项目对的对象。 dimensions 方法 返回 VBArray 的维数。 除法...

    JScript 语言参考

    delete 运算符 删除对象的属性,或删除数组中的一个元素。 description 属性 返回或设置关于指定错误的描述字符串。 Dictionary 对象 存储数据键、项目对的对象。 dimensions 方法 返回 VBArray 的维数。 除法...

    JavaScript学习笔记整理_关于表达式和语句

    表达式和语句 eval&#40;...删除属性后,属性将不存在,而删除数组元素后,会在数组内留下一个值为undefined的洞,数组长度不变; 尝试删除无法删除的属性返回false,若删除成功或删除操作不起作用时均返回t

    零起点学通C++多媒体范例教学代码

    14.1.2数组元素 14.1.3数组下标越界 14.1.4 倒序输出 14.1.5 将数组的下标定义为常量 14.1.6 手动操作数组元素 14.1.7 数组的初始化 14.2 数组的用途 14.2.1 求平均考试成绩 14.2.2 兔子繁殖问题 14.2.3 数字排序...

    零起点学通C++学习_多媒体范例教学代码

    14.1.2数组元素 14.1.3数组下标越界 14.1.4 倒序输出 14.1.5 将数组的下标定义为常量 14.1.6 手动操作数组元素 14.1.7 数组的初始化 14.2 数组的用途 14.2.1 求平均考试成绩 14.2.2 兔子繁殖问题 14.2.3 ...

    vue语法.rar

    它的前面不能用new,因为它生成的是一个原始类型的数据,不是对象 3.它可以接受一个参数,为了便于区别。及时长的一样他们也不同 4.它不能与其他的值进行运算,没有隐式转换 5.它的值可以被转换成布尔值或字符串...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    10.3.2 通过指针引用数组元素 143 10.3.3 数组名作函数参数 146 10.3.4 指向多维数组的指针和指针变量 148 10.4 字符串的指针指向字符串的针指变量 150 10.4.1 字符串的表示形式 152 10.4.2 使用字符串指针变量与...

Global site tag (gtag.js) - Google Analytics