JavaScript は複数の配列の交差の簡単な例を取得します_JavaScript スキル
javascript
交差点
配列
このプロジェクトでは、複数の配列の共通部分を取得する必要があるため、この例は特定のシナリオにのみ適しています。たとえば、 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
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
if (temp.length min = temp.length;
minAry = temp;
}
}
alter("最小数组:" minAry);
var ret = '';
for (var i = 0, len = minAry.length; i
var counter = 0;
for (var j = 0, ll = tAry.length; j
for (var k = 0, l = tt.length; 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;
}