For your problem 1 we use this method to return unique values of an array (sorry: it’s in German). So you can simply concat thos two arrays and then use that method to get unique values. The parameter “leereEntfernen” is used to either leave or remove empty values:
var inputArray = arguments[0];
var leereEntfernen = arguments[1];
var outputArray = new Array();
var vorhanden = 0;
var counter = 0;
for ( var i = 0 ; i < inputArray.length ; i++ )
{
vorhanden = 0;
if (i == 0)
{
if (leereEntfernen && (inputArray[i] == '' || inputArray[i] == null))
{
continue;
}
else
{
outputArray[counter] = inputArray[i];
counter++;
continue;
}
}
else
{
for ( var k = 0 ; k < outputArray.length ; k++ )
{
if (outputArray[k] == inputArray[i])
{
// Wert ist bereits in OutputArray
vorhanden = 1;
continue;
}
}
if (vorhanden == 0)
{
if (leereEntfernen && (inputArray[i] == '' || inputArray[i] == null))
{
continue;
}
else
{
outputArray[counter] = inputArray[i];
counter++;
continue;
}
}
}
}
return outputArray;
Problem 2 could be solved like this:
var ArrayResult = arguments[0], // your Array a
ArrayRemove = arguments[1], // your Array b
spalteResult = arguments[2], // optional column
spalteRemove = arguments[3], // optional colum
testEntryResult,
testEntryRemove;
if (!ArrayResult || !ArrayRemove)
{
return;
}
if (spalteResult && spalteRemove)
{
for ( var i = ArrayResult.length - 1 ; i >= 0 ; i-- )
{
testEntryResult = ArrayResult[i][spalteResult-1];
for ( var j = 0 ; j < ArrayRemove.length ; j++ )
{
testEntryRemove = ArrayRemove[j][spalteRemove-1]
if (testEntryRemove == testEntryResult)
{
ArrayResult.splice(i, 1);
break;
}
}
}
}
else if (spalteResult && !spalteRemove)
{
for ( var i = ArrayResult.length - 1 ; i >= 0 ; i-- )
{
testEntryResult = ArrayResult[i][spalteResult-1];
for ( var j = 0 ; j < ArrayRemove.length ; j++ )
{
testEntryRemove = ArrayRemove[j]
if (testEntryRemove == testEntryResult)
{
ArrayResult.splice(i, 1);
break;
}
}
}
}
else if (!spalteResult && spalteRemove)
{
for ( var i = ArrayResult.length - 1 ; i >= 0 ; i-- )
{
testEntryResult = ArrayResult[i];
for ( var j = 0 ; j < ArrayRemove.length ; j++ )
{
testEntryRemove = ArrayRemove[j][spalteRemove-1]
if (testEntryRemove == testEntryResult)
{
ArrayResult.splice(i, 1);
break;
}
}
}
}
else
{
for ( var i = ArrayResult.length - 1 ; i >= 0 ; i-- )
{
testEntryResult = ArrayResult[i];
for ( var j = 0 ; j < ArrayRemove.length ; j++ )
{
testEntryRemove = ArrayRemove[j]
if (testEntryRemove == testEntryResult)
{
ArrayResult.splice(i, 1);
break;
}
}
}
}
if (ArrayResult.length == 0)
{
return null;
}
else
{
return ArrayResult;
}
So you can simply concat thos two arrays and then use that method to get unique values
This method only gives you unique values of an array. So you first have to “join” the two arrays (using concat) and then use that method to filter duplicate values.