배열의 일부 요소를 삭제해야하지만 배열을 재정렬해야합니다.재 배열하지 않고 배열에서 요소를 삭제하는 가장 좋은 방법
"삭제"를 사용하여 요소를 삭제하면 "구멍"이 메모리를 차지합니까?
var array=["A","B","C"];
delete array[1]; // array -> ["A", undefined, "C"]
삭제 된 요소가 실제로 삭제되어 메모리 공간을 차지하지 않는다고 생각하십니까?
배열의 일부 요소를 삭제해야하지만 배열을 재정렬해야합니다.재 배열하지 않고 배열에서 요소를 삭제하는 가장 좋은 방법
"삭제"를 사용하여 요소를 삭제하면 "구멍"이 메모리를 차지합니까?
var array=["A","B","C"];
delete array[1]; // array -> ["A", undefined, "C"]
삭제 된 요소가 실제로 삭제되어 메모리 공간을 차지하지 않는다고 생각하십니까?
전체 구현에 따라 다릅니다. 내부적으로 모든 JS 표현은 결국 드문 드문 표현으로 변환되지만, 스파 스 표현은 요소 당 더 많은 메모리를 사용하고 비 스파 스 배열보다 액세스 속도가 느려집니다.
밀도가 높은 배열에서 한 값을 제거하면 메모리를 해제 할 수 없지만 충분한 요소 집합을 제거한 후에는 메모리를 전체적으로 절약하기 위해 구현이 희박한 표현으로 변환 될 가능성이 있습니다.
참고 : 삭제 한 색인의 개체 또는 값은 즉시 삭제되지 않습니다. 삭제는 개체에서 속성 슬롯을 제거하기 만합니다. 개체/값은 GC 통과 중에 만 제거됩니다. 다른 참고 문헌은 없습니다.
array.splice(1, 1);
사용할 수 있습니다. 인덱스 1에서 하나의 항목을 제거합니다. 첫 번째 매개 변수는 인덱스이고, 두 번째 매개 변수는 계수입니다.
REARRANGE가 없으므로 splice는 내가 찾지 않는 것입니다. – blow