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]그대로 삭제 재산 2 의 myArr이상도 다르다 myArr[2] = undefined. 이 이야기의 교훈은 splice부작용을 혼란시키지 않고 원하는 효과를 얻는 안전한 방법이기 때문에이 작업에 사용 하는 것입니다.
— winglerw28
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.