两个数组操作
两个数组取出不重复值
第一种
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"]