JQuery 합집합, 교집합, 차집합, 대칭차

Jmnote (토론 | 기여)님의 2015년 1월 3일 (토) 20:36 판 (→‎대칭차)
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) );

2 교집합

 

$.intersect = function(a,b){return $.grep(a,function(i){return $.inArray(i,b)>-1;});};
console.log( $.intersect(arr1,arr2) );
function intersect(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 array_diff(a,b) { return $(a).not(b).get(); }
console.log( array_diff(arr1, arr2) );

4 대칭차

 

$.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) );
function intersect(a,b) { return $.grep(a,function(i){return $.inArray(i,b)>-1;}); }
function sym_diff(a,b) { return $(a).not(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'];

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

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

	// interact
	console.log( $(arr1).not(arr2).get() );
	// ["A", "B"]

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

6 같이 보기

7 참고 자료

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