JavaScript は複数の配列の交差の簡単な例を取得します_JavaScript スキル

WBOY
リリース: 2016-05-16 17:16:19
オリジナル
1300 人が閲覧しました

このプロジェクトでは、複数の配列の共通部分を取得する必要があるため、この例は特定のシナリオにのみ適しています。たとえば、 A array var a = {1000,10001,10002,10003}; B array var b = {10002, 10003}; C array var c = {10003}; これら 3 つの配列の交差配列を取得する必要があります。
具体的なアイデアは次のとおりです。まず最小の配列を配列 A として初期化し、要素の最小数も配列 A の長さとなります。次に、各配列を反復処理して、これらの配列の最短の長さを最小長として取得します。 、同時に最短の長さの配列を取得します。次に、最小配列と各配列を反復し、要素が等しいかどうかの比較を開始し、カウンターを使用して要素が各配列に存在し、それが交差要素であるかどうかを判断します。
このアイデアは比較的単純ですが、実行できます。複数の配列との交差を取得するには、コードは次のとおりです。

コードをコピー コードは次のとおりです。



<頭>
新しいドキュメント




<スクリプト>
function getValues(obj){
var 値 = "";
var l = obj.options.length;
for (var i=0; i if (i != (l-1)) {
values = obj.options(i).value "_";
}
else {
値 = obj.options(i).value;
}
}
戻り値。
}

function _test() {
var ids = getValues(document.all.aa);
var aa = _getIntersection(ids);
}

function _getIntersection(src) {
var tAry = src.split("_");
//最小数组
var minAry = null;
var min = tAry[0].split(",").length; //初期化第一は長さの最小数組
minAry = tAry[0].split(",");
for (var i = 1, len = tAry.length; i var temp = tAry[i].split(",");
if (temp.length min = temp.length;
minAry = temp;
}
}
alter("最小数组:" minAry);

var ret = '';
for (var i = 0, len = minAry.length; i var srcNum = parseInt(minAry[i]);
var counter = 0;
for (var j = 0, ll = tAry.length; j var tt = tAry[j].split(",");
for (var k = 0, l = tt.length; k var tarNum = parseInt(tt[k]);
if (srcNum == tarNum) {
カウンター ;
}
}
}
if (counter == tAry.length) { ret = srcNum ",";
}
}
ret = strSlice(ret, ',');
alter("交集是:" ret);
}

//去掉结尾分間隔符
function strSlice(str, split){
if ((str!=null && str!="") && (split!=' '))
return ((str.charAt(str.length-1) == Split) ? str.substring(0, str.length-1) : str);
else
return str;
}


















関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート