TypeScript에서 배열 항목을 어떻게 제거합니까?


404

TypeScript에서 만든 배열이 있고 키로 사용하는 속성이 있습니다. 해당 키가 있으면 항목을 어떻게 제거 할 수 있습니까?

답변:


639

JavaScript에서와 같은 방식으로.

delete myArray[key];

이는 요소를로 설정합니다 undefined.

Array.prototype.splice기능 을 사용하는 것이 좋습니다 :

const index = myArray.indexOf(key, 0);
if (index > -1) {
   myArray.splice(index, 1);
}

8
그것에 타입을 추가 할 수 있습니다! var index: number = myArray.indexOf(key, 0);
CorayThan

17
@CorayThan 반드시 암시 적으로 타입을 indexOf반환 number할까요?
Chris

5
@Chris이 간단한 경우에는 분명하지만 모든 변수의 유형을 명시 적으로 정의하면 버그를 더 빨리 진단하는 데 도움이됩니다. index이미 두 곳 이상에서 사용 중이며 해당 장소 중 하나 ( splice)가 숫자를 표시하려고합니다. 그렇지 않으면 오류가 발생합니다. 현재 컴파일러는 실수를 저지르는 것을 막을 수 없습니다.
Jochem Kuijpers

33
@blorkfish 객체 목록이 있으면을 사용할 수 있다고 언급하는 것이 좋습니다 var index = myArray.findIndex(x => x.prop==key.prop);.
Francisco Cabral

6
@ Cirelli94-오래된 스레드에 응답하고 있지만 질문에 대한 대답은 배열 요소를 삭제해도 길이가 변경되거나 배열의 색인이 다시 생성되지 않는다는 것입니다. 배열은 자바 스크립트의 객체이기 때문에, delete myArr[2]그대로 삭제 재산 2myArr이상도 다르다 myArr[2] = undefined. 이 이야기의 교훈은 splice부작용을 혼란시키지 않고 원하는 효과를 얻는 안전한 방법이기 때문에이 작업에 사용 하는 것입니다.
winglerw28
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.