首頁 >web前端 >js教程 >JavaScript取得多個數組的交集

JavaScript取得多個數組的交集

高洛峰
高洛峰原創
2016-11-25 13:23:082716瀏覽

在專案中需要取得多個陣列的交集,故本例只是適用於特定場景。例如A數組 var a = {1000,10001,10002,10003}; B數組 var b = {10002, 10003}; C數組var c = {10003}; 需要取得這三個數組的交集數組。
      具體想法為:先初始一個最小數組為A數組,元素個數最小的也是數組A的長度.然後再迭代各個數組,取得這幾個數組長度最短的為最小長度,同時得到長度最短數組。然後,迭代最小數組與各個數組,開始比較元素相等,使用計數器來判斷是否該元素在各個數組中都存在即為交集元素.
      思路比較簡單,但是可以實現多數組取得交集,代碼如下:
 
Html程式碼 
 
 
 

 
  New Document<br>  <br>  <title> New Document MET CONTENT="EditPlus"> 
   
   
   
 function getValues(obj){     
            var values = ""; 
           for (var i=0; i               if (i != (l-1)) { 
                    values += obj.options(i).value + "_"; 
                } 
                else { 
                    values += obj.options(i).value; 
                } 
            } 
            return values; 
        } 
 
        function _test () { 
            var ids = getValues(document.all.aa); 
          
        function _getIntersection(src) { 
            var tAry = src.split("_"))     var tAry = src.split("_"))     var tAry = src.split("_")) /最小數組 
            var minAry = null; 
            var      minAry = tAry[0].split(", "); 
            for (var i = 1, len = tAry.length; i                      if (temp.length                     min = temp.length; 
                  }  
            } 
          
            var ret = ''; 
            for (var i = 0, len = minAry.length; i        
                var 微粒 = 0; 
                for (var j = 0, ll = tAry.length; j    "); 
                   與 (var k = 0, l = tt.length; k                       if (srcNum== tarNum) {       粒子 ++; 
                       } 
           
                if (counter == tAry.length) { 
        
                } 
            } 
 
           alert("交集是:" + ret); 
        } 
 
        // 移除分隔符號 
       str!="") && (split!=' ')) 
                return ( str.charAt( ) str.length-1) == split) ? str.substring(0, str.length-1) : str); 
            else 
               則以 return str; 
        } 
   
 
  
 
  
  
 
     
       
       
       
       
    選擇> 
 
 身體> 
 
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn