<script>
var lis = {
"0": "aa",
"1": "bb",
"2": "cc",
"3": "dd",
"length": 4
};
Array.prototype.splice.call(lis, 0, 1);
/*在IE8中length属性变成3了,但第一个元素没有删除掉。在其他浏览器中第一个元素删除了并且length属性也变成3了*/
console.log(lis);
</script>
因为数组应该是for(let i=0;i<list.length;i++){console.log(list.item(i))才能删除。解决步骤如下:
1、首先第一步就是要进行getElementsByTagName 得到的是 HTMLCollections类注意的是有一个ID为'test'的元素,可以直接取得。
2、接着就是这时候进行querySelector 得到的是 NodeList注意的是
document.querySelectorAll('div').forEach((a,b,c)=>{console.log('第一个参数:' + a + '值');console.log。
3、然后就是通过控制台观察发现,两者都具备iterator接口,都可以支持for ... of语相比来讲,援引Arguments来。
4、最后一步就是进行ie8中使用Array.prototype.splice.call对伪数组的删除,这时候就可以删除成功了会有提示的,如下图所示。
这句的意思是:调用数组对象原型里的push方法。
剖开来看:array指的是数组对象;prototype指的是数组对象原型的共享方法区域(这句并不严谨,但是可以这样理解);push:在数组尾压入一个元素;接下来用call来调用就是调用push方法的对象是call的第一个参数。
推荐看一下阮一峰的关于angularjs的继承的文章,讲的比较好。
扩展资料:
start:从当前位置开始移除元素
deleteCount:要移除的元素数量
item:在元素移除后,在start位置要插入的新元素
返回值:由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。
start默认为0,表示从数组的第一个元素开始删除。如果start小于0,则将其与数组长度相加,如果相加结果仍为0,则重置为0。如果start大于等于数组长度,则重置为数组长度。
deleteCount默认为0,如果小于等于0,则不删除元素。如果大于start后面的元素总数,则从start后面的元素都将被删除(含第start位)。
item:要添加进删除位置的元素。
兄弟我这不是要实现去重的功能呀,我是要删除伪数组中指定项
本回答被网友采纳