아 그리고 네 번째 문제 정답에 버그 있어염
Array.prototype.remove3 = function(){
for (var i = 0; i < this.length; i++) {
if ( this[i] === 3 ) {
this.splice(i,1);
}
}
};
var arr = [1,2,3,4];
arr.remove3();
이렇게 하면 3이 없어지기는 하는데
3이 연속으로 나열된 변수에다 적용하니
var arr2 = [3,3,3,3,3,3,3,3,2]
arr2.remove3()
→ 결과가 [3,3,3,2] 출력
요렇게 나오네여
splice 함수 실행되고 배열 구조가 바뀌면서 i값이 한 단계 더 넘어가서 생기는 문제 같아서
Array.prototype.remove3 = function() {
for (var i = 0; i < this.length; i++) {
if (this[i] === 3) {
this.splice(i, 1);
i -= 1; <- 요거 추가함
}
}
};
요렇게 실행하니 해결됐슴다
칭찬해주셈