JS两个数组判断?
数组1 的元素是:yy,zz,xx
数组2 的元素是:yy判断两个数组中存在重复的,然后去除重复的:数组3为:zz,xx

解决方案 »

  1.   

    使用双重循环就可以了     var arr3 = new Array();
         flag = false;
         function get(arr1, arr2){
             for(var i = 0; i < arr1.length; i++){
                 for(var j = 0; j < arr2.length; j++){
                     if(arr1[i] == arr2[j]){
                           flag = true;
                           break;
                     }
                 }
                 if(flag){
                     flag = false;
                 }else{
                     arr3.push(arr1[i]);
                 }
             }   
         }
      

  2.   

    双重循环效率太低了
    <script>
    function removeSame(arr1,arr2){
    if(arr1==null||arr1.length==0) return [];
    if(arr2==null||arr2.length==0) return arr1;
    var obj = new Object();
    for(var i=0;i<arr2.length;i++){
    eval("obj.pro"+arr2[i]+"='"+arr2[i]+"';");
    }
    var arr3 = new Array();
    for(var i=0;i<arr1.length;i++){
    if(eval("typeof obj.pro"+arr1[i]+"=='undefined'")){
    arr3.push(arr1[i]);
    }
    }
    return arr3;
    }alert(removeSame([1,2,3],[2]));//[1,3]
    alert(removeSame([1,2,3],[2,3]));//[1]
    alert(removeSame([1,2,3],[]));//[1,2,3]
    alert(removeSame([],[2]));//[]
    </script>
      

  3.   

    var obj = new Object();//定义一个对象
    利用对象属性可以直接set和get属性值(比如:obj.a='a';var a = obj.a;),避开数组元素的遍历
    从而避开二重循环
      

  4.   

    如果是数组元素是object类型呢?
      

  5.   

    兄弟的精神是值得佩服的,但在这里object类型有意义吗?
    alert([2]==[2]);//false这里前提就是字符串或者数值
      

  6.   

    function removeTheSame(arr1, arr2) {
    var flags = {}, temp = arr1.concat(arr2), result = [];
    for (var i = 0, len = temp.length; i < len; i++) {
    if (!flags[temp[i]]) {
    result.push(temp[i]);
    flags[temp[i]] = true;
    }
    }
    return result;
    }
      

  7.   

    function removeTheSame(arr1, arr2) { 
    var flags = {}, temp = arr1.concat(arr2), result = []; 
    for (var i = 0, len = temp.length; i < len; i++) { 
    if (!flags[temp[i]]) { 
    result.push(temp[i]); 
    flags[temp[i]] = true; 


    return result; 
    }不好意思,刚刚忘了用代码格式发
      

  8.   

    你怎么试的?能贴下代码吗?ie,ff测试均通过
    alert(removeSame(['yy','zz','xx'],['yy']));//['zz','xx']