我有一个函数,目的是搜索一个具有相同值的对象,为全局数组删除它并返回它但不删除
carousel();
function carousel() {
var i;
var x = document.getElementsByClassName("mySlides");
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
slideIndex++;
if (slideIndex > x.length) {slideIndex = 1}
x[slideIndex-1].style.display = "block";
setTimeout(carousel, 5000); // Change image every 5 seconds
showDivs(slideIndex);
}
我需要删除该对象但由于某种原因它仍然存在,有人可以告诉我我做错了什么?
答案 0 :(得分:4)
你应该使用
array.splice(start, deleteCount)
不是切片。
答案 1 :(得分:0)
您在数组上使用错误格式的参数使用slice()
方法。如果要使用切片,则参数格式不同
slice(start, finish)
例如slice(i, i+1)
答案 2 :(得分:0)
slice()
不会改变数组,splice()
会
在您的示例中,您可以使用splice(i, 1)
下面是一些描述这两个函数的细节:
<强>切片:强>
slice(begin,end)
方法返回数组部分的浅 副本 到从开始到结束选择的新数组对象(不包括结束)。 原始数组不会被修改。
的剪接:强>
splice(start,deleteCount)
方法通过删除来更改数组的内容 现有元素和/或添加新元素。