这应该是一个简单的算法,但我无法理解逻辑。我需要获取 2 个数组并只保留在一个数组或另一个数组中找到的值,而不是两者。
例如,如果我有
arr1 [1,2,3,6]
arr2 [2,3,4,5,7]
我想再次拥有 2 个数组
arr1 [1,6]
arr2 [4,5,7]
编辑:
我删除了旧代码并放入了其他一些工作代码。仍然不是很漂亮,但至少可以工作。我需要做的就是将 arr3 存储到 arr1 并将 arr4 存储到 arr2。
var arr3 = [];
var arr4 = [];
var foundMatch = false;
//find all arr1 elements that don't match arr2 elements
//store into arr4
for(var i=0; i<arr1.length; i++)
{
foundMatch = false;
for(var j=0; j<arr2.length; j++)
{
if(arr1[i] == arr2[j])
{
console.log("match found for [%s] [%s]", i, j);
foundMatch = true;
break;
}
}
if(!foundMatch)
{
arr4.push(arr1[i]);
}
}
//find all arr2 elements not in arr1
//store in arr3
for(var i=0; i<arr2.length; i++)
{
foundMatch = false;
for(var j=0; j<arr1.length; j++)
{
if(arr2[i] == arr1[j])
{
console.log("match found for [%s] [%s]", i, j);
foundMatch = true;
break;
}
}
if(!foundMatch)
{
arr3.push(arr2[i]);
}
}