我正在处理类似应用程序的多页绘画,有一个“清除”按钮。当用户按下时,我希望清除该页面上绘制的所有形状。以下是清除按钮后面的代码。
clear.addEventListener('click', function (e) {
canvas.width = canvas.width;
tempCanvas.width = tempCanvas.width;
var tempShapes = shapes.slice();
alert(tempShapes.length);
for(var i=0; i<tempShapes.length; i++)
{
var A = tempShapes[i];
if(A.pageNum == pNum)
{
alert('in');
shapes.splice(i, 1);
}
}
//shapes.length = 0;
e.preventDefault();
}
shapes[]
是包含所有页面的完整对象的数组。我只想删除具有当前页码(pNum
)的那些。代码运行时,它将在shape数组中为该特定页面保留一个元素,有时还会保留两个元素。我希望删除该特定页面的所有形状数组元素。 最佳答案
您可能会发现Array.filter
对于此任务更有用,例如:
shapes = shapes.filter(function(shape, i) {
return tempShapes[i].pageNum != pnum;
})