Я попытался удалить несколько слов в соответствии с передающей переменной.Удаление конкретных аргументов
Однако, я написал две версии кода, которые имеют незначительные отличия!
И они привели к различным видам продукции, которые я не понимаю, почему!
Так что мне нужно, чтобы вы помогли вам, и большое спасибо за вас, ребята!
Эта функция будет принимать различные числа переменных,
, которые могли бы быть ([обр], 1,2) или ([обр], 1,2,8,9 ...) и т. д.
и удалите переменную в первом массиве в соответствии с пропущенными числами.
Например: разрушитель ([1, 2, 3, 4], 2, 3) -> выход должен быть [1,4]
И вот мой код. (Обратите внимание на небольшую разницу с жирным шрифтом!)
function destroyer(arr) {
for (var i = 1; i < arguments.length; i++){
arr = arguments[0].filter(function(value){
if(value == arguments[i]){
return false;
}else{
return true;
}
});
}
return arr;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
Выход будет [1,2,3,1,2,3], что означает значение == аргументы [я] не работает. Тем не менее,
function destroyer(arr) {
for (var i = 1; i < arguments.length; i++){
filter = arguments[i];
arr = arguments[0].filter(function(value){
if(value == filter){
return false;
}else{
return true;
}
});
}
return arr;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
Эта версия работает отлично показывает мне [1,1].
Так что же случилось с первой версией ??? Спасибо!!
Могу ли я предложить более чистую альтернативу код - https://jsfiddle.net/2zm32uom/1/ –