以下是我要完成的完整说明:
将为您提供一个初始数组(驱逐舰函数中的第一个参数),后跟一个或多个参数。从初始数组中删除与这些参数具有相同值的所有元素。
这是我的解决方案:
function destroyer(arr) {
var args = Array.prototype.slice.call(arguments);
args.slice(0,1);
return arr.filter(function(elements) {
return args.indexOf(element) === -1;
});
}
请记住,可能有任意数量的参数(不只是2或3) 我的解决方案不起作用。我当前的解决方案有什么问题,如何通过解释修复它?
答案 0 :(得分:1)
您的解决方案几乎正常运作。 问题:
args.slice(0,1);
不修改数组(无论如何,此方法只返回带有第一个元素的数组)。请改用args.shift()
删除第一个元素function(elements)
应为function(element)
。工作解决方案:
function destroyer(arr) {
var args = Array.prototype.slice.call(arguments);
args.shift();
return arr.filter(function(element) {
return args.indexOf(element) === -1;
});
}
console.log(destroyer([1, 2, 3, 5, 5], 1, 5)); // prints [2, 3]
检查工作demo。