脚本的目标:将一个数组和多个参数传递给一个函数。必须返回一个数组,减去与参数相同的元素。
没有语法错误,我似乎无法弄清楚逻辑中的错误。
function destroyer(arr) {
function isTheDestroyer(x) {
//Using the arguments object
for (i=1; i<arguments.length; i++) {
if (x == arguments[i]) {
return false;
}
}
return true;
}
var filtered = arguments[0].filter(isTheDestroyer);
return filtered;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
运行时输出没有变化。
答案 0 :(得分:0)
我同意@James Thorpe。 isTheDestroyer中的参数与驱逐舰中的参数不同(实际上它的顺序不同)。我建议你使用一个闭包
function destroyer(arr) {
var args = arguments;
function isTheDestroyer(x) {
//Using the arguments object
for (i=1; i<args .length; i++) {
if (x == args [i]) {
return false;
}
}
return true;
}
var filtered = arguments[0].filter(isTheDestroyer);
return filtered;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);