Я работаю над многостраничным красящим приложением, есть кнопка «clear». Когда пользователь нажимает это, я хочу, чтобы все фигуры, нарисованные на этой странице, были очищены. Ниже приведен код кнопки очистки.Как удалить элементы из массива?
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[]
является массив, содержащий полные объекты всех страниц. Я просто хочу удалить их с текущим pagenumber (pNum
). Когда код запускается, он оставляет один элемент в массиве формы для этой конкретной страницы, а иногда и из двух элементов. Я хочу, чтобы все элементы массива формы были удалены.
В идеале? Используйте 'jQuery.filter' или' _.filter' или полисполнение Array.filter'. Вот почему эти библиотеки-утилиты настолько повсеместны в мире JavaScript ... – meagar
@meagar 'Array.filter' является родным javascript, нет необходимости в библиотеках. – David
Если вы не хотите использовать Array.filter, то итерация назад (для var i = tempShapes.length - 1; i> -1; i--) {}) позволит вам безопасно сращиваться. – imcg