Javascript의 효율적이고 우아한 집합 차이 계산
Javascript에서 집합 연산을 처리할 때 집합을 계산하는 효율적이고 우아한 방법 찾기 차이(A - B)는 일반적인 문제입니다. 몇 가지 방법을 살펴보겠습니다.
네이티브 함수 접근 방식
한 가지 간단한 해결책은 네이티브 Javascript 함수를 활용하는 것입니다.
<code class="javascript">var A = [1, 2, 3, 4]; var B = [1, 3, 4, 7]; var diff = A.filter(function(x) { return B.indexOf(x) < 0; }); console.log(diff); // [2]
여기서 필터 함수는 배열 A를 반복하면서 indexOf 작업을 사용하여 각 요소가 B에 있는지 확인합니다. 찾을 수 없는 경우 해당 요소는 차이 배열 diff에 추가됩니다.
연결 및 정렬 트릭
또 다른 접근 방식은 Javascript 연결 및 정렬 동작을 활용합니다.
<code class="javascript">var A = [1, 2, 3, 4]; var B = [1, 3, 4, 7]; A = A.concat(B).sort().filter((v, i, a) => a[i] !== a[i + 1]); console.log(A); // [2, 7]</code>
두 배열을 연결하고 정렬하여 고유한 요소의 정렬된 목록을 얻습니다. 연속된 중복 항목을 필터링하면 집합 차이를 얻을 수 있습니다.
객체 기반 접근 방식
해시맵과 같은 객체를 활용하여 두 배열의 고유 요소를 저장하는 것이 효율적인 솔루션을 제공합니다.
<code class="javascript">var A = [1, 2, 3, 4]; var B = [1, 3, 4, 7]; var setA = {}; A.forEach(function(x) { setA[x] = true; }); var setDiff = {}; B.forEach(function(x) { setDiff[x] = true; }); Object.keys(setA).forEach(function(x) { if (!setDiff[x]) { setDiff[x] = true; } }); var diff = Object.keys(setDiff); console.log(diff); // [2, 7]</code>
이 접근 방식은 객체를 해시맵으로 사용하여 두 배열의 요소를 추적하고 차이를 효율적으로 계산합니다.
이러한 방법은 효율성과 우아함 측면에서 서로 다른 절충점을 제공합니다. 특정 요구사항에 가장 적합한 것을 선택하세요.
위 내용은 Javascript에서 집합 차이 계산을 위한 효율적이고 우아한 기술은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!