장바구니에 상품이 없습니다.
home2 › 게시판 › JavaScript, TS 게시판 › constructor, prototype 연습문제 4개부분에서
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();
console.log(arr);
this.splice(i,1) 이부분에서 괄호안에 1은 어떤의미인지 구글에 찾아봤는데 너무 광범위하게 나와서 제대로 이해를 못하겠습니다ㅠ
한글로 써보자면
만약에 this의 i 번째가 3과 같으면 (i번째의 값과 같으면 <- 이게 맞나요?) this 의 i번째를 1개를 삭제한다 뭐 이런뜻인가요????
splice(몇번째아이템부터, 몇개지울건지) 입니다
[4,5,6,7,8].splice(2,1) 이러면 2번째 아이템부터 1개를 지워주니까 [4,5,7,8] 만 남습니다
감사합니다!!
그러면 위에 문제에서
if (this[i] === 3) { this.splice(i, 1); }
이 말은 반복문 돌다가 3 만나면 this.splice(3,1)이 되는건데
[1,2,3,4] 의 인덱스 3번째 부터 1개 지우라는것은 무슨뜻인가요???
[1,2,3,4]의 인덱스 3번째는 4 이고 4부터 1개를 지워라?? 근데 또 결과는 3이 지워진 [1,2,4] 가 나오긴하는데...
이 부분에 i 에 3이 들어가는데 그 3이 인덱스 3이라는 뜻이 아닌거겠죠?? 그냥 숫자 3을 의미하는거 맞나요??
근데 강의 해답에 보면
2. 만약에 this[i]가 3이면
3. this라는 array에서 i번째 자료를 제거해주세요
라고 되어있는데 [1,2,3,4] 에서 0부터 시작하니까 array의 i번째 즉 3번째면 4 아닌가욤..?
아 선생님 this[i] 는 3이고 배열에서 3의 위치는 인덱스값으로 2이니까 결국 i 에는 2가 들어간다는 말씀이시죠??? 이게 맞는거죠??
죄송합니다..
마지막말이 맞는듯요