ホームページ >ウェブフロントエンド >jsチュートリアル >js は 2 つの配列の差集合を取得します。

js は 2 つの配列の差集合を取得します。

WBOY
WBOYオリジナル
2016-05-16 17:26:301581ブラウズ
复制代码代码如下:

/**
* それぞれは、パラメータとして関数とオプションのパラメータのセットを受け入れる集合反復関数です
* この反復関数は、関数を使用してセットの各要素とオプションのパラメータを順番に計算し、結果セットを計算します返されるのは
{%example
<script>var a = [1,2,3,4].each(function(x){return x > 2 ? x : null }); <br>var b = [1,2,3,4].each(function(x){return x alert(a) <br>alert (b); ; <br></script>
%}
* @param {Function} fn 反復決定用関数
* @param more ... 0 個以上のオプションのユーザー定義パラメータ
* @returns {Array} 結果セット、結果がない場合は空のセットを返します
*/
Array.prototype。 each = function(fn){
fn = fn ||関数.K;
var a = [];
var args = Array.prototype.slice.call(arguments, 1);
for(var i = 0; i var res = fn.apply(this,[this[i],i].concat(args));
if(res != null) a.push(res);
}
戻り値;
};

/**
* 配列内の非反復要素のコレクションを取得します

* 配列を一意にします
* @returns {Array} 非反復要素で構成される配列
*/
Array.prototype.uniquelize = function(){
var ra = new Array();
for(var i = 0; i if(!ra.contains(this[i])){
ra.push(this[i]);
}
}
ra を返します。
};

/**
* 2 つのセットの補数を求めます
{%example
<script> <br>var a = [1,2,3,4]; <br>var b = [3,4 , 5,6]; <br>alert(Array.complement(a,b)); <br></script>
%}
* @param {Array} セット A
* @ param {Array} b Set B
* @returns {Array} 2 つのセットの補数
*/
Array.complement = function(a, b){
return Array.minus(Array.union(a, b),Array.intersect(a) 、b));
};

/**
* 2 つのセットの共通部分を見つけます
{%example
<script> <br>var a = [1,2,3,4]; <br>var b = [3,4, 5,6]; <br>alray.intersect(a,b)); <br></script>
%}
* @param {Array} セット A
* @ param {Array} b Set B
* @returns {Array} 2 つのセットの共通部分
*/
Array.intersect = function(a, b){
return a.uniquelize().each(function(o){return b.contains( o) ? o : null});
};

/**
* 2 つのセットの差を求めます
{%example
<script> <br>var a = [1,2,3,4]; <br>var b = [3,4 , 5,6]; <br>alert(Array.minus(a,b)); <br></script>
* @param {Array} a セット
* @ param {Array} b Set B
* @returns {Array} 2 つのセットの差分
*/
Array.minus = function(a, b){
return a.uniquelize().each(function(o){return b.contains( o) ? null : o});
};

/**
* 2 つの集合の和集合を求めます
{%example
<script> <br>var a = [1,2,3,4]; <br>var b = [3,4 , 5,6]; <br>alert(Array.union(a,b)); <br></script>
* @param {Array} セット A
* @ param {Array} b Set B
* @returns {Array} 2 つのセットの和集合
*/
Array.union = function(a, b){
return a.concat(b).uniquelize();
};

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。