两个数组取出不重复值

第一种

var arr=[{"id":1,"value":1},{"id":2,"value":2},{"id":3,"value":3}]var arr1=[{"id":1,"value":1},{"id":4,"value":4},{"id":5,"value":5}]//带键值对的用 for in
for(var i in arr){
		for(var k in arr1){
		if(arr[i].id == arr1[k].id){
			arr1.splice(k,1)
		}
	 }
}
console.log(arr1);
//输出结果为  [{id: 4, value: 4}1: {id: 5, value: 5}]

第二种

var arr1=[
    {name: "The Journal",value: 7115},
    {name: "The Journal hand",value: 333},
    {name: "hand",value: 333},
]
var arr2=[
    {name: "The Journal",value: 7115},
    {name: "The Journal hand",value: 333},
    {name: "hand",value: 333},
    {name: "handddd",value: 1},
    {name: "test111",value: 3},
]
var filtrate=[],
arr2.forEach(v => {
    if (!arr1.some(n => n.name == v.name)) {
      filtrate.value.push(v)
    }
});
console.log(filtrate)

结果:[ {name: "handddd",value: 1},{name: "test111",value: 3},]

两个数组取出重复值

第一种

Array.intersect = function () {
    var result = new Array();
    var obj = {};
    for (var i =0; i < arguments.length; i++) {
        for (var j =0; j < arguments[i].length; j++) {
            var str = arguments[i][j];
            if (!obj[str]) {
                obj[str] = 1;
            }
            else {
                obj[str]++;
                if (obj[str] == arguments.length) {
                    result.push(str);
                }
            }//end else
        }//end for j
    }//end for i
    return result;
}
console.log(Array.intersect(["1","2", "3"], ["2","3", "4", "5", "6"]))
//结果["2","3"]

第二种

 getArrEqual(arr1, arr2) {
    let newArr = [];
    for (let i = 0; i < arr2.length; i++) {
      for (let j = 0; j < arr1.length; j++) {
        if (arr1[j] == arr2[i]) {
          newArr.push(arr1[j]);
        }
      }
    }
    return newArr;
}
var arr1=["1","2", "3"];
var arr2=["2","3", "4", "5", "6"];
使用:console.log( getArrEqual(arr1, arr2))
//结果["2","3"]