- Set operations with jQuery
- 제이쿼리 집합 연산
- jQuery 합집합, 교집합, 차집합, 대칭차
1 합집합[ | ]
JavaScript
Copy
console.log( $(arr1).add(arr2).get() );
JavaScript
Copy
function union(a, b) { return $(a).add(b).get(); }
console.log( union(arr1, arr2) );
JavaScript
Copy
$.union = function(a,b){return $(a).add(b).get();};
console.log( $.union(arr1, arr2) );
2 교집합[ | ]
JavaScript
Copy
console.log( $.grep(arr1,function(i){return $.inArray(i,arr2)>-1;}) );
JavaScript
Copy
function intersect(a,b) { return $.grep(a,function(i){return $.inArray(i,b)>-1;}); }
console.log( intersect(arr1,arr2) );
JavaScript
Copy
$.intersect = function(a,b){return $.grep(a,function(i){return $.inArray(i,b)>-1;});};
console.log( $.intersect(arr1,arr2) );
3 차집합[ | ]
JavaScript
Copy
console.log( $(arr1).not(arr2).get() );
JavaScript
Copy
function complement(a,b) { return $(a).not(b).get(); }
console.log( complement(arr1, arr2) );
JavaScript
Copy
$.complement = function(a,b){return $(a).not(b).get()};
console.log( $.complement(arr1, arr2) );
4 대칭차[ | ]
JavaScript
Copy
console.log( $(arr1).add(arr2).not($.grep(arr1,function(i){return $.inArray(i,arr2)>-1})).get() );
JavaScript
Copy
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) );
JavaScript
Copy
$.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 예시 코드[ | ]
JavaScript
Copy
<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>