Javascript arrya 데이터 삭제시 주의점
2024. 12. 25. 14:28ㆍJavascript
for문 등을 이용해서 삭제할 경우, 데이터가 밀리는 문제가 있음
뒤에서부터 삭제를 해야 밀리는 문제가 없어짐
잘못된 예
const drawContainer = Ext.ComponentQuery.query('#drawContainer')[0];
const surface = drawContainer.getSurface();
const sprites = surface.getItems();
console.log(sprites);
displayedRects.splice(0, displayedRects.length);
sprites.forEach(sprite => {
if (sprite.type === 'rect') {
console.log(sprite);
surface.remove(sprite, true); // Remove the rectangle sprite
}
});
잘된 예
const drawContainer = Ext.ComponentQuery.query('#drawContainer')[0];
const surface = drawContainer.getSurface();
const sprites = surface.getItems();
console.log(sprites);
displayedRects.splice(0, displayedRects.length);
// Iterate in reverse to avoid index shifting issues
for (let i = sprites.length - 1; i >= 0; i--) {
const sprite = sprites[i];
if (sprite.type === 'rect') {
console.log(sprite);
surface.remove(sprite, true); // Remove the rectangle sprite
}
}
'Javascript' 카테고리의 다른 글
Javascript loop문에서 빠져나오기(중단하기) (0) | 2024.12.22 |
---|---|
Javascript Object Literal 에러 방지 및 default값 설정 (0) | 2024.12.21 |
Javascript Uncaught TypeError: Assignment to constant variable. (0) | 2024.12.16 |
Javascript array 복사하기 (0) | 2024.12.13 |
Javascript array 및 map 처리 (0) | 2024.12.05 |