Array.prototype.remove3 = function(){
for(let i = 0 ; i<this.length; i++) {
if (this[i]==3){
// delete this[i]
this.splice(i,1)
}else{
continue
}
}
}
let arrr = [1,2,3,3,3,3,4,4,4,4,5]
arrr.remove3()
console.log(arrr)// [1,2,3,3,4,4,4,4,5] 이렇게 3이 다 삭제안됨.
위에 적은건 제가 직접 해본 함수입니다.
풀어본문제가 3이 한개일경우는 삭제가 되는데 위에 arrr처럼 3이 여러개일때는 몇개가 남네요.
splice 파라미터가 첫번째는 인덱싱값, 두번째는 그 인덱싱부터 몇개 삭제할건지로
검색해서 찾았는데 왜 다 삭제가 안될까요?
혹시 splice를 쓰면 전체 어레이 길이가 달라지니 for 에서 this[i]값이 미뤄져버리나요?
논리적으로 이해가 안됩니다. 부탁드립니다