Problem
NodeJS에서 댓글 삭제 시, 해당 글에서 댓글의 정보를 담고 있는 배열에서도 해당 댓글을 삭제 하기 위해서 pop을 사용하였더니, 가장 최근에 작성된 댓글이 삭제되는 버그를 확인했다.
video.comments.pop(comment._id);
Scratch
pop() 메서드는 input에 상관 없이 배열에서 마지막 요소를 제거하고 그 요소를 반환합니다.
따라서 배열에 있는 특정 요소를 제거하고 싶을 경우, 반복문을 사용하여 인덱스를 순회하면서 해당 요소가 나왔을 경우, 해당 인덱스에 해당하는 요소를 splice() 메서드를 사용하여 제거하는 방법이 있다.
for (let i = 0; i < video.comments.length; i++) {
if (String(video.comments[i]) === String(comment._id)) {
video.comments.splice(i, 1);
i--;
}
}
'Javascript > tips' 카테고리의 다른 글
[JS] querySelectorAll 에 addEventListener 하기 (0) | 2023.07.25 |
---|