Here is another solution:
arr1.forEach(
function(item){
var itemIndex = arr2.indexOf(item);
if(itemIndex>=0)
arr2.splice(itemIndex,1);
}
);
About your commentary
If arr2 ist a mixed array which value is:
var arr2 = [['2013-11-29','50','annL','annT'], ['20','annL','annT', '25','annL'],
'annT', '44','annL','annT', '96','annL','annT', '26','annL','annT', '10','annL','annT'];
Passing the algorithm arr2 value will be:
[['2013-11-29','50','annL','annT'], ['20','annL','annT', '25','annL'],
"96", "26", "annT", "10", "annL", "annT"]
If what you want is to remove the occurrences of arr1 elements in each arr2 2d array value:
var arr2 = [['2013-11-29','50','annL','annT'], ['20','annL','annT', '25','annL'],
['annT', '44','annL','annT', '96','annL','annT'], ['26','annL','annT', '10','annL','annT']];
arr2.forEach(
function(arrayItem){
arr1.forEach(function(item){
if(arrayItem.indexOf(item)>=0)
arrayItem.splice(arrayItem.indexOf(item),1);
});
});
//arr2 will produce: [['2013-11-29','50'], [], ['96'], ['26','10']]
Beware it will produce an error if arr2 isn't a truly 2d array.