有两个数组
A1=[{id:1,text:"123"},{id:2,text:"234"},{id:3,text:"345"},{id:4,text:"456"}];
A2=[{id:2,text:"234"},{id:3,text:"345"}];A2数组内容始终被包含在A1中的。以两个数组A1,A2的id不同的为条件,返回A1中不同的项放在一个数组中(返回一个数组)。

解决方案 »

  1.   

    目测只能循环套循环来遍历了。。
    var A1=[{id:1,text:"123"},{id:2,text:"234"},{id:3,text:"345"},{id:4,text:"456"}];
    var A2=[{id:2,text:"234"},{id:3,text:"345"}];
    var len1= A1.length,len2=A2.length;
    var result = [];
    for(var i=0;i<len1;i++){
        var isInA2 = false;
        for(var j=0;j<len2;j++){
            if(A2[j].id == A1[i].id){
                isInA2 = true;
                break;
            }
        }
        !isInA2 && result.push(A1[i])
    }
    console.log(result)
      

  2.   


    var A1=[{id:1,text:"123"},{id:2,text:"234"},{id:3,text:"345"},{id:4,text:"456"}],
    A2=[{id:2,text:"234"},{id:3,text:"345"}];
    function requestDiffArr(a1,a2){
          var arr = new Array();
          for(var i=0,maxInd = a1.length;i<maxInd; i++){
                      for(var j=0,maxIndJ = a2.length;j<maxIndJ; j++){
                                if(a1[i].id != a2[j].id){
                                    arr.push(a1[i]);
                                } 
                      }
          };
          return arr;
    }
    window.onload = function(){
             alert(requestDiffArr(A1,A2))
    }
      

  3.   

    你说的是求差集对吧<script type="text/javascript">
    var A1=[{id:1,text:"123"},{id:2,text:"234"},{id:3,text:"345"},{id:4,text:"456"}];
    var A2=[{id:2,text:"234"},{id:3,text:"345"}];
    var A3=new Array();
    for(var i=0;i<A1.length;i++){
    var flag=0;
    for(var j=0;j<A2.length;j++){
    if(A1[i].id==A2[j].id){
    flag=1;
    }
    }
    if(!flag){
    A3.push(A1[i]);
    }
    }
    console.log(A3);
    </script>
      

  4.   


    A1=[{id:1,text:"123"},{id:2,text:"234"},{id:3,text:"345"},{id:4,text:"456"}];
    A2=[{id:2,text:"234"},{id:3,text:"345"}];
     
    A1.map(function(i){if(A2.map(function(j){return j["id"];}).indexOf(i["id"])>=0) {return undefined;} return i}).filter(function(i){if(i){return true;} else {return false;} })