2011-03-12 1 views
1

프로토 타입을 사용하여 배열 내에서 키를 설정 해제하는 데 어려움이 있습니다 (일반적으로 자바 스크립트 질문 일 수 있음) - 다음 코드가 있습니다. 내 사용자 지정 프로토 타입 클래스 :자바 스크립트에서 배열의 인덱스를 삭제하십시오 (프로토 타입 프레임 워크를 사용하고 클래스 내에서)

initialize: function(selector) { 
    this.selected = []; 
    this.selectcount = 0; 
}, 
addSelected: function(value) { 
    this.selected.push(value); 
    this.selectcount++; 
}, 
removeSelected: function(value) { 
    delete this.selected[value]; 
    this.selectcount--; 
}, 

배열에 추가가 잘 작동하지만 난 값은이에 추가하고 특정 ID를 참조하는 (배열 내에서 특정 ID를 삭제하는 방법을 알아낼 내 인생 캔트 선택한 배열 및 removeSelected 클릭 할 때 해당 배열에서 동일한 값을 제거해야합니다.) - 나 또한 시도했습니다

하지만 그 중 하나가 작동하지 않습니다. 임 기본적으로 또는 PHP에서 unset()의 equivelent 찾고.

누락 된 부분에 대한 도움을 주시면 감사하겠습니다.

미리 감사드립니다.

답변

3

올바른 트랙에 splice()이 있지만 값 자체 대신 배열의 값 색인에 전달해야합니다. 값이 어레이에 존재하지 않는 경우

var index = this.selected.indexOf(value); 
if (index !== -1) { 
    this.selected.splice(index, 1); 
    this.selectcount--; 
} 

indexOf() 복귀 -1 :

indexOf()

이 사용할 수있는 방법이다.

일부 구형 브라우저에서는 Array.indexOf()가 지원되지 않지만 Prototype.js와 함께 사용하는 것이 안전하다는 점에 유의하십시오.

관련 문제