특정 속성을 기반으로 배열에서 객체를 제거하려면 기본 JavaScript 방법을 활용하고 연결 중 길이 감소로 인한 문제를 피하세요.
먼저 삭제할 개체를 결정하고 이를 listToDelete와 같은 변수에 저장합니다. 다음으로, 객체 배열(arrayOfObjects)을 반복하고 객체의 ID 속성이 listToDelete의 ID와 일치하는지 확인합니다. 일치하는 항목이 발견되면 splice를 사용하여 arrayOfObjects에서 객체를 제거합니다.
splice 작업 중에 길이가 줄어드는 문제를 해결하려면 객체가 제거될 때마다 i 변수를 줄입니다. 또는 배열 위에 보관할 요소를 작성합니다.
<code class="javascript">for (var i = 0; i < arrayOfObjects.length; i++) { var obj = arrayOfObjects[i]; if (listToDelete.indexOf(obj.id) !== -1) { arrayOfObjects.splice(i, 1); i--; } }
<code class="javascript">var end = 0; for (var i = 0; i < arrayOfObjects.length; i++) { var obj = arrayOfObjects[i]; if (listToDelete.indexOf(obj.id) === -1) { arrayOfObjects[end++] = obj; } } arrayOfObjects.length = end;
최신 런타임에서 효율적인 조회를 위해 해시 세트를 활용합니다.
<code class="javascript">const setToDelete = new Set(listToDelete); ... if (setToDelete.has(obj.id)) {...}
마지막으로 논리를 캡슐화합니다. 편리한 사용을 위해 재사용 가능한 함수:
<code class="javascript">const filterInPlace = (array, predicate) => { let end = 0; for (let i = 0; i < array.length; i++) { const obj = array[i]; if (predicate(obj)) { array[end++] = obj; } } array.length = end; };</code>
이 접근 방식은 속성 값을 일치시켜 배열에서 객체를 효과적으로 제거하고 선형 시간 연산을 방지하여 최적의 성능을 보장합니다.
위 내용은 속성 값을 기반으로 배열에서 개체를 효율적으로 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!