プロジェクトでは、複数の配列の共通部分を取得する必要があるため、この例は特定のシナリオにのみ適しています。たとえば、 A array var a = {1000,10001,10002,10003}; B array var b = {10002, 10003}; C array var c = {10003}; これら 3 つの配列の交差配列を取得する必要があります。 具体的なアイデアは次のとおりです。まず最小の配列を配列 A として初期化し、要素の最小数も配列 A の長さとなります。次に、各配列を反復処理して、これらの配列の最短の長さを最小長として取得し、同時に最短の長さの配列を取得します。次に、最小配列と各配列を反復し、要素が等しいかどうかの比較を開始し、カウンターを使用して要素が各配列に存在するかどうか、交差要素であるかどうかを判断します このアイデアは比較的単純ですが、次のように実現できます。複数の配列の交差を取得するコードは次のとおりです。
HTML コード
<script> <br> function getValues(obj){ <br> var 値 = ""; <br> var l = obj。 options.length; <br> for (var i=0; i<l; i++) { <br/> <br/>値 += obj.options(i).value ; <br/> { <br/> var tAry = src.split("_"); <br/>の tAry t-Ary の src.split("_"); length 最小の配列 <br/> minAry = tAry[0].split(","); 、 ");<br/><br/>‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐----アラート("最小配列: "+minary); var ret = ''; <br/> for (var i = 0, len = minAry.length; i<len; i++) { <br/> var srcNum = parseInt(minAry[i]); <br/> var counter = 0; <br/> for (var j = 0, ll = tAry.length; j<ll; j++) { <br/> var tt = tAry[j].split(","); <br/> for (var k = 0, l = tt.length; k<l; k++) { <br/> var tarNum = parseInt(tt[k]); <br/> if (srcNum == tarNum) { <br/> counter ++; <br/> } <br/> } <br/> } <br/> if (counter == tAry.length) { <br/> ret += srcNum + ","; <br/> } <br/> } <br/> ret = strSlice(ret, ','); <br/> alter("交集是:" + ret); <br/> } <br/> <br/> //去掉结尾分間隔符 <br/> function strSlice(str, split){ <br/> if ((str!=null && str!="") && (split!=' ')) <br/> return ((str.charAt (str.length-1) == 分割) ? str.substring(0, str.length-1) : str); <br/> else <br/> return str; <br/> } <br/> </script>