ТСу видимо пока сложновато читать ваш код, хоть он и оч хорош)
ТС, вы, судя по описанию путаете 2 понятия:
- массив строк
- массив входных аргументов в функции на js
Для лучшего понимания даю вам логически более понятный вариант, но не оптимальный. Т.к.
Виталий Инчин предоставил гораздо более оптимальный и короткий код.
function destroyer(arr){
if(arguments.length > 1)
{
for(var i=1;len = arguments.length, i<len;i++)
{
for(var j=0;arrLen = arr.length, j<arrLen;j++)
{
if(arr[j] === arguments[i])
delete arr[j];
}
}
return arr.filter(function(item){
return item != 'undefined'
});
}
}