jQuery 합집합, 교집합, 차집합, 대칭차

Set operations with jQuery
제이쿼리 집합 연산
jQuery 합집합, 교집합, 차집합, 대칭차

1 합집합[ | ]

 

console.log( $(arr1).add(arr2).get() );
function union(a, b) { return $(a).add(b).get(); }
console.log( union(arr1, arr2) );
$.union = function(a,b){return $(a).add(b).get();};
console.log( $.union(arr1, arr2) );

2 교집합[ | ]

 

console.log( $.grep(arr1,function(i){return $.inArray(i,arr2)>-1;}) );
function intersect(a,b) { return $.grep(a,function(i){return $.inArray(i,b)>-1;}); }
console.log( intersect(arr1,arr2) );
$.intersect = function(a,b){return $.grep(a,function(i){return $.inArray(i,b)>-1;});};
console.log( $.intersect(arr1,arr2) );

3 차집합[ | ]

 

console.log( $(arr1).not(arr2).get() );
function complement(a,b) { return $(a).not(b).get(); }
console.log( complement(arr1, arr2) );
$.complement = function(a,b){return $(a).not(b).get()};
console.log( $.complement(arr1, arr2) );

4 대칭차[ | ]

 

console.log( $(arr1).add(arr2).not($.grep(arr1,function(i){return $.inArray(i,arr2)>-1})).get() );
function intersect(a,b) { return $.grep(a,function(i){return $.inArray(i,b)>-1;}); }
function sym_diff(a,b) { return $(a).add(b).not(intersect(a,b)).get(); }
console.log( sym_diff(arr1, arr2) );
$.intersect = function(a,b){return $.grep(a,function(i){return $.inArray(i,b)>-1;});};
$.sym_diff = function(a,b){return $(a).add(b).not($.intersect(a,b)).get();};
console.log( $.sym_diff(arr1,arr2) );

5 예시 코드[ | ]

<script src="//code.jquery.com/jquery.min.js"></script>
<script>
var arr1 = ['A', 'B', 'C', 'D'];
var arr2 = ['C', 'D', 'E', 'F'];

$.union = function(a,b){return $(a).add(b).get();};
$.intersect = function(a,b){return $.grep(a,function(i){return $.inArray(i,b)>-1;});};
$.complement = function(a,b){return $(a).not(b).get()};
$.sym_diff = function(a,b){return $(arr1).add(arr2).not($.intersect(arr1,arr2)).get();};

$(function() {
  // Union
  console.log( $.union(arr1, arr2) );
  // ["A", "B", "C", "D", "E", "F"]

  // Intersection
  console.log( $.intersect(arr1, arr2) );
  // ["C", "D"]

  // Complement
  console.log( $.complement(arr1, arr2) );
  // ["A", "B"]

  // Symmetric difference
  console.log( $.sym_diff(arr1,arr2) );
  // ["A", "B", "E", "F"]
});
</script>


6 같이 보기[ | ]

7 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}