Skip to content

Instantly share code, notes, and snippets.

@jikeytang
Created July 24, 2014 15:29
Show Gist options
  • Save jikeytang/d5bc2d31f90db0ee718a to your computer and use it in GitHub Desktop.
Save jikeytang/d5bc2d31f90db0ee718a to your computer and use it in GitHub Desktop.
[ Javascript ] - 20140725-题目1
数组arr1和arr2,长度都不固定,如何从arr1中删除和arr2中重复值的元素。
如:var arr1 = [1,3,4,6,7];
var arr2 = [3,4,7];
===>
var arr3 = [1,6]
PS:
1. 回复时注意加上下面这句话,才会有语法高亮或格式缩进。
```javascript
// you code
```
2. 粘贴代码时请使用shift+tab,缩进前面的空白。
@raclen
Copy link

raclen commented Jul 25, 2014

function sArr(arr1,arr2){
for( i=0;i<arr1.length;i++){
    for( j=0;j<arr2.length;j++){
        if(arr1[i]===arr2[j]){
            arr1.splice(i,1);
            }

        }

    }
    alert(arr1);
}
var a1 = [1,'3',4,6,7];
var a2 = [3,4,7];
sArr(a1,a2)

@dongzhouT
Copy link

//没有js基础,只学过c++写出来的。望指摘
var filter= function (arr1,arr2){
  var num1=arr1.length;
  var num2=arr2.length;
  var arrtmp=[];
  var i,j;
  for(i=0;i<num1;i++){
    flag=0;
    for(j=0;j<num2;j++){
      if(arr1[i]===arr2[j]){
        flag=1;
        break;
      } 
    }   
    if(flag===0){
      arrtmp.push(arr1[i]);
    }  
 }
 return arrtmp;

};
var arr1=[1,4,'2',6,8];
var arr2=[1,2,6];
var arr=[];
arr=filter(arr1,arr2);
console.log("arr1  :"+arr1);
console.log("arr2  :"+arr2);
console.log("result:"+arr);

@heqing0712
Copy link

var fn = function (A1, A2) {
    var i = A1.length, j = A2.length;
    while (i--) {
        while (j--) {
            (A1[i] === A2[j]) && A1.splice(i, 1);
        }
        j = A2.length;
    }
    return A1;
};

var arr1 = [1, 3, 4, 6, 7, 8, 8, '9'];
var arr2 = [3, 4, 7, 9];
alert(fn(arr1,arr2));

@karrynew
Copy link

没人发最简单的 我来发!哈哈

var arr1 = [22, 33, 44, 55];
var arr2 = [33, 55];
var arr3 = []
console.log(filter(arr1, arr2))

function filter(arr1, arr2) {
    for (var i = 0; i < arr1.length; i++) {
        if (!isHasObj(arr1[i], arr2)) {
            arr3.push(arr1[i])
        }
    }
    return arr3;
}

function isHasObj(obj, arr) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] == obj) {
            return true
        }
    }
    return false
}

@xianlaioy
Copy link

@karrynew的答案有问题

var arr1 = [1,3,4,6,7,9,9];
var arr2 = [3,4,7];
console.log(arr1.concat(arr2).sort().join('').replace(/(\w)\1+/g,'').split(''))

得到是[1,6]。不能排除arr1中有自身重复

@rambo-panda
Copy link

// 难道大婶们都不喜欢 用object key的方法呢?
//  还要考虑 type吧?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment