웹표준,웹접근성(html, html5, css, css3, javascript, jQuery, jQueryMobile, snecha, senchaTouch, php, mobileWebApp)

Array 객체요소 제거 본문

javascript/Tutorial

Array 객체요소 제거

jokack01 2014. 7. 11. 09:23

Array 객체요소 제거

Array 객체 메서드에는 특정 요소를 제거하는 메서드가 따로 없다.

splice() 메서드를 사용하여 제거해야하며 

프로토타입에 remove()를 추가해서 배열 요소를 제거할수 있다.


Array.prototype.remove = function(index){

    this.splice(index,1);

}


Array 객체 요소제거의 잘못된 예)

// Array 생성자 함수 프로토타입에 remove() 메서드 추가 

Array.prototype.remove = function(index){

    this.splice(index,1);

}

// 숫자 4가지의 값을 가진 배열 num 선언

var num= [80, 90, 200, 300];

// num 배열의 갯수만큼 반복

for(var i=0; i < num.length; i++){

// 100보다 큰 수를 가진 인덱스를 삭제    

   if(num[i]>100){

        num.remove(i)

    }

}

// 화면에 출력

console.log(num);

위 출력화면을 보면 100이 넘는 요소를 모두 제거하지 못했다.

이유는 배열의 요소가 제거되면서 인덱스가 앞으로 당겨지기 때문이다.

이러한 문제를 해결하기 위해서는 역 for문을 이용해야 한다.


역 for문을 이용한 Array 객체 요소제거)

// Array 생성자 함수 프로토타입에 remove() 메서드 추가 

Array.prototype.remove = function(index){

    this.splice(index,1);

}

// 숫자 4가지의 값을 가진 배열 num 선언

var num= [80, 90, 200, 300];

// num 배열의 갯수만큼 뒤에서 부터 반복

for(var i=num.length; i >=0; i--){

// 100보다 큰 수를 가진 인덱스를 삭제     

 if(num[i] > 100){

        num.remove(i);    

    }

}

// 화면에 출력

console.log(num);

100보다 큰 수를 모두 제거한 것을 볼 수 있다. 

 

'javascript > Tutorial' 카테고리의 다른 글

Math 객체  (0) 2014.07.24
Date 객체  (0) 2014.07.11
Array 객체  (0) 2014.01.21
메서드 체이닝  (0) 2014.01.20
String 객체  (0) 2014.01.10